/* Offres renseignées : cartes lisibles et champs copiables sans script. */
.promo-page,.promo-article{min-width:0}
.promo-heading{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 20px;margin:0 0 22px}.promo-heading>div{flex:1 1 240px}.promo-heading>div>span{font-size:10px;letter-spacing:.08em;color:var(--m-muted,#899198)}.promo-heading h1{margin:6px 0 10px;font-size:29px;line-height:1.25;letter-spacing:-.03em;color:var(--m-text,#eceeef)}.promo-heading p{font-size:13px;line-height:1.7;color:var(--m-muted,#899198)}
.promo-heading .promo-add{min-height:40px;justify-content:center}.promo-heading .promo-add[hidden]{display:none}
.promo-filters{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin-bottom:18px}.promo-filters label{display:grid;gap:5px;min-width:120px;flex:1;font-size:11px;color:var(--m-muted,#899198)}.promo-filters input,.promo-filters select{min-width:0;width:100%;min-height:39px;padding:8px 10px;border:1px solid var(--m-line,#262a2e);border-radius:8px;background:var(--m-surface,#101214);color:var(--m-text,#eceeef);font:inherit;font-size:12px}.promo-filters button,.promo-copy button{padding:9px 13px;min-height:38px;border:1px solid var(--m-line,#262a2e);border-radius:8px;background:var(--m-surface2,#191c1f);color:var(--m-text,#eceeef);font:600 12px/1.5 var(--tnf-font,system-ui,sans-serif);cursor:pointer}.promo-filters>a{padding:9px 0;font-size:11px;color:var(--m-muted,#899198)}
.promo-results{font-size:12px;color:var(--m-muted,#899198)}.promo-grid{display:grid;gap:16px}.promo-card{min-width:0;padding:20px;border:1px solid var(--m-line,#262a2e);border-radius:12px;background:var(--m-surface,#101214);margin:0 0 15px}.promo-card header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:11px}.promo-merchant{font-size:11px;font-weight:600;color:var(--m-muted,#899198)}.promo-state{padding:4px 7px;border:1px solid var(--m-line,#262a2e);border-radius:12px;font-size:10px;line-height:1.4;color:var(--m-text,#eceeef)}.promo-state-expire{opacity:.75}.promo-card h2{margin:0 0 12px;font-size:20px;line-height:1.4;letter-spacing:-.02em;color:var(--m-text,#eceeef);overflow-wrap:anywhere}.promo-card>p{margin:0 0 14px;font-size:13px;line-height:1.75;color:var(--m-muted,#899198);overflow-wrap:anywhere}.promo-copy{display:flex;align-items:center;gap:9px;min-width:0}.promo-copy input{min-width:0;flex:1;width:100%;padding:11px 12px;border:1px dashed var(--m-line,#47505a);border-radius:8px;background:var(--m-bg,#0b0d0f);color:var(--m-text,#eceeef);font:600 16px/1.5 ui-monospace,monospace;letter-spacing:.03em}.promo-copy button[hidden]{display:none!important}.promo-copy-status{display:block;min-height:20px;margin:5px 0 7px;font-size:11px;line-height:1.6;color:var(--m-muted,#899198)}.promo-facts{display:grid;gap:6px;margin:0 0 13px;padding:0;list-style:none;color:var(--m-muted,#899198);font-size:11px;line-height:1.65}.promo-facts a{text-decoration:underline}.promo-conditions{border:0;border-top:1px solid var(--m-line,#262a2e);border-radius:0;background:transparent;padding:0;margin:10px 0}.promo-conditions summary{padding:11px 0;font-size:12px;color:var(--m-text,#eceeef);cursor:pointer}.promo-conditions p{margin:0 0 13px;font-size:12px;line-height:1.75;color:var(--m-muted,#899198);overflow-wrap:anywhere}.promo-merchant-link{display:inline-flex;gap:5px;margin:3px 0 13px;color:var(--m-text,#eceeef);font-size:12px;font-weight:600;text-decoration:underline;text-underline-offset:3px}.promo-card .promo-note{margin:0;font-size:10px;line-height:1.65;color:var(--m-muted,#899198)}.promo-empty{padding:28px 20px;border:1px solid var(--m-line,#262a2e);border-radius:12px;background:var(--m-surface,#101214);text-align:center}.promo-empty h2{font-size:21px;line-height:1.4}.promo-empty p{font-size:13px;line-height:1.75;color:var(--m-muted,#899198)}.promo-article{margin:25px 0}.promo-article>h2{font-size:22px;margin:0 0 16px}
.promo-page :where(a,input,button,select,summary):focus-visible,.promo-article :where(a,input,button,summary):focus-visible{outline:2px solid var(--m-coral,#ef4444);outline-offset:3px}
/* Éditeur de codes promo. Les champs utilisent la palette du portail. */
.promo-admin {
  max-width: 980px;
  margin: 0 auto;
  padding: 14px 0 42px;
  color: #e7e9ec;
  font-family: var(--font, system-ui, sans-serif);
}
.promo-admin-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  margin: 0 0 26px;
}
.promo-admin-kicker { display: block; margin-bottom: 12px; color: #ed686c; font-size: 11px; font-weight: 650; letter-spacing: .12em; }
.promo-admin-heading h1 { margin: 0; font-size: clamp(25px, 3vw, 34px); font-weight: 650; letter-spacing: -.035em; line-height: 1.2; }
.promo-admin-heading p { margin-top: 10px; color: #9ca3ac; font-size: 14px; line-height: 1.6; }
.promo-admin-tabs { display: flex; gap: 8px; flex-wrap: wrap; padding: 0 0 20px; margin-bottom: 26px; border-bottom: 1px solid #2b3036; }
.promo-admin-tabs a { display: inline-flex; padding: 9px 15px; border: 1px solid transparent; border-radius: 20px; color: #a2aab4; font-size: 13px; font-weight: 500; }
.promo-admin-tabs a:hover { color: #f0f1f3; background: #1c2025; }
.promo-admin-tabs a[aria-current] { color: #f0f1f3; border-color: #383e47; background: #252a31; }
.promo-admin-form { display: grid; gap: 18px; }
.promo-admin-section { padding: 26px; border: 1px solid #30363d; border-radius: 16px; background: #181c20; }
.promo-admin-section-title { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 25px; }
.promo-admin-section-title>span { display: grid; place-items: center; width: 34px; height: 34px; flex: none; border: 1px solid #3c373a; border-radius: 11px; background: #2b2226; color: #ef9b9e; font-size: 12px; font-weight: 650; }
.promo-admin-section h2 { font-size: 18px; line-height: 1.3; font-weight: 600; letter-spacing: -.02em; }
.promo-admin-section-title p { margin-top: 5px; color: #959faa; font-size: 13px; }
.promo-admin-two { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); align-items: start; gap: 20px; }
.promo-admin-field { display: flex; flex-direction: column; gap: 9px; min-width: 0; color: #d7dce2; font-size: 13px; font-weight: 550; line-height: 1.5; }
.promo-admin-field>span>b { color: #e18487; font-weight: 500; }
.promo-admin-field small { color: #8e99a6; font-size: 12px; font-weight: 400; }
.promo-admin-field>span>small { margin-left: 7px; }
.promo-admin :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), textarea, select) {
  appearance: auto;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: 11px 13px;
  border: 1px solid #3b424c;
  border-radius: 9px;
  background: #101417;
  color: #edf0f4;
  color-scheme: dark;
  font: 400 14px/1.5 var(--font, system-ui, sans-serif);
  transition: border-color .15s, box-shadow .15s;
}
.promo-admin input::placeholder,.promo-admin textarea::placeholder { color: #6f7b87; opacity: 1; }
.promo-admin input:focus,.promo-admin textarea:focus,.promo-admin select:focus { outline: none; border-color: #a2666a; box-shadow: 0 0 0 3px #df687018; }
.promo-admin input[type=checkbox],.promo-admin input[type=radio] { width: 17px; height: 17px; min-height: 0; margin: 1px 0 0; accent-color: #eb6169; cursor: pointer; flex: none; }
.promo-admin textarea { resize: vertical; min-height: 92px; }
.promo-admin input.promo-admin-code { font-family: ui-monospace, "Cascadia Code", Consolas, monospace; font-size: 19px; letter-spacing: .035em; min-height: 54px; }
.promo-admin-section>.promo-admin-field { margin-top: 22px; }
.promo-admin-hint { margin-top: 10px; color: #8d99a6; font-size: 12px; font-weight: 400; line-height: 1.65; }
.promo-admin-hint a { color: #c5ccd7; text-decoration: underline; text-underline-offset: 3px; }
.promo-admin-field>.promo-admin-hint { margin: 0; }
.promo-admin fieldset { min-width: 0; margin: 0; }
.promo-admin-expiration { padding: 0; border: 0; }
.promo-admin-expiration>legend { padding: 0; margin-bottom: 10px; color: #d7dce2; font-size: 13px; font-weight: 550; }
.promo-admin-radio-group { display: flex; flex-wrap: wrap; gap: 10px 20px; padding: 0 0 10px; min-height: 46px; align-items: center; }
.promo-admin-radio-group label,.promo-admin-check { display: flex; align-items: center; gap: 9px; color: #b7c0ca; font-size: 13px; cursor: pointer; }
.promo-admin-expiration [hidden] { display: none; }
.promo-admin-details { overflow: hidden; border: 1px solid #30363d; border-radius: 14px; background: #171b1f; }
.promo-admin-details>summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 25px; list-style: none; color: #d7dce2; cursor: pointer; font-size: 14px; font-weight: 550; }
.promo-admin-details>summary::-webkit-details-marker { display: none; }
.promo-admin-details>summary small { margin-left: 8px; color: #8d99a6; font-size: 12px; font-weight: 400; }
.promo-admin-details>summary>span[aria-hidden] { color: #9ea9b5; font-size: 22px; font-weight: 300; transition: transform .15s; }
.promo-admin-details[open]>summary>span[aria-hidden] { transform: rotate(45deg); }
.promo-admin-details-body { display: grid; gap: 24px; padding: 4px 25px 25px; }
.promo-admin-language { display: grid; gap: 16px; padding: 18px; border: 1px solid #30363d; border-radius: 10px; }
.promo-admin-language>legend { color: #aab5c1; padding: 0 7px; font-size: 12px; }
.promo-admin-relations { display: grid; gap: 12px; max-height: 220px; overflow-y: auto; }
.promo-admin-relations label { display: flex; align-items: flex-start; gap: 10px; color: #bfc7d1; font-size: 13px; line-height: 1.6; }
.promo-admin-relations small { color: #7f8c9b; font-size: 11px; }
.promo-admin-actions { display: flex; gap: 11px; flex-wrap: wrap; align-items: center; padding: 6px 0; }
.promo-admin .btn { min-height: 43px; padding: 10px 17px; border: 1px solid #3b424c; border-radius: 22px; background: #252b33; color: #e7ecf2; font-size: 13px; font-weight: 600; letter-spacing: 0; line-height: 1.5; transform: none; box-shadow: none; }
.promo-admin .btn:hover { background: #303843; border-color: #596371; }
.promo-admin .btn.primary { border-color: #de4d56; background: #e1535d; color: #fff; }
.promo-admin .btn.primary:hover { background: #ec626b; border-color: #ec626b; }
.promo-admin .btn.danger { color: #f2a3a7; background: #322329; border-color: #724047; }
.promo-admin-actions>a { padding: 10px; color: #a7b1bd; font-size: 13px; }
.promo-admin-save-note { margin-left: auto; font-size: 12px; color: #8693a1; }
.promo-admin-notice { padding: 15px 18px; margin: 0 0 22px; border: 1px solid #345447; border-radius: 10px; background: #1c2c25; color: #aed8bf; font-size: 14px; }
.promo-admin-notice.is-error { background: #302024; border-color: #744047; color: #f2b1b5; }
.promo-admin-delete { margin-top: 30px; padding-top: 20px; border-top: 1px solid #30363d; }
.promo-admin-delete>summary { width: fit-content; cursor: pointer; color: #aa858d; font-size: 12px; }
.promo-admin-delete form { display: grid; gap: 14px; justify-items: start; padding-top: 15px; }
.promo-admin-delete label { display: flex; gap: 10px; align-items: flex-start; color: #a3adb9; font-size: 13px; }
.promo-admin-list { overflow-x: auto; border: 1px solid #30363d; border-radius: 13px; background: #181c20; }
.promo-admin-list table { width: 100%; border-collapse: collapse; }
.promo-admin-list th,.promo-admin-list td { padding: 16px 19px; text-align: left; border-bottom: 1px solid #2b3139; vertical-align: middle; font-size: 13px; }
.promo-admin-list th { color: #8d99a6; font-size: 11px; font-weight: 550; text-transform: uppercase; letter-spacing: .06em; }
.promo-admin-list td strong { font-weight: 550; }
.promo-admin-list small { display: block; margin-top: 4px; color: #8d99a6; font-size: 11px; }
.promo-admin-list td a { color: #c7d0dc; text-underline-offset: 4px; text-decoration: underline; }
.promo-admin-list tbody tr:last-child td { border: 0; }
.promo-admin-list code { color: #eac8cd; padding: 4px 7px; background: #27242a; border-radius: 5px; font-size: 12px; }
.promo-admin-empty { display: grid; justify-items: center; gap: 14px; padding: 40px 20px; text-align: center; }
.promo-admin-empty h2 { font-size: 22px; }
.promo-admin-empty p { color: #8d99a6; font-size: 14px; }
.promo-admin :is(a,button,summary,input,select,textarea):focus-visible { outline: 2px solid #c98289; outline-offset: 4px; }
@media(max-width:650px) {
  .promo-admin { padding-top: 4px; }
  .promo-admin-section { padding: 20px 17px; border-radius: 12px; }
  .promo-admin-two { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .promo-admin-details>summary { padding: 18px 17px; }
  .promo-admin-details-body { padding: 2px 17px 20px; }
  .promo-admin-details>summary small { display: block; margin: 3px 0 0; }
  .promo-admin :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),textarea,select) { font-size: 16px; }
  .promo-admin-actions .btn { flex: 1 1 190px; justify-content: center; }
  .promo-admin-save-note { flex-basis: 100%; margin-left: 0; }
}
@media(min-width:1700px){.promo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.promo-heading h1{font-size:25px}.promo-card{padding:16px}.promo-card h2{font-size:18px}.promo-filters label{min-width:calc(50% - 10px)}.promo-filters label:first-child{flex-basis:100%}.promo-filters input,.promo-filters select{font-size:16px}.promo-admin-form .promo-admin-two{grid-template-columns:minmax(0,1fr)}}
@media(max-width:380px){.promo-copy{flex-wrap:wrap}.promo-copy input{flex-basis:100%}}
@media print{.promo-copy button,.promo-filters{display:none}.promo-card{break-inside:avoid}.promo-grid{display:block}}
