/* ==========================================================================
   SURGE — feuille de style unique
   Sombre, sobre, un seul accent électrique. Tout part des jetons ci-dessous :
   changer une couleur ici la change partout, sans règle à rattraper ailleurs.
   ========================================================================== */

/* --- Polices, servies par SURGE (aucun appel à Google) ------------------- */
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;
  src:url(/assets/fonts/inter-latin-wght-normal.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;
  src:url(/assets/fonts/inter-latin-ext-wght-normal.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}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/barlow-condensed-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:italic;font-weight:700;font-display:swap;src:url(/assets/fonts/barlow-condensed-latin-700-italic.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/barlow-condensed-latin-800-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:italic;font-weight:800;font-display:swap;src:url(/assets/fonts/barlow-condensed-latin-800-italic.woff2) format('woff2')}

/* --- Jetons ---------------------------------------------------------------- */
:root{
  color-scheme:dark;
  /* Fonds : du plus profond au plus proche */
  --bg:#07080a;
  --surface:#0f1114;
  --surface-2:#15171b;
  --surface-3:#1c1f24;
  --field:#0b0c0f;
  /* Traits */
  --line:#22252b;
  --line-soft:#1a1c21;
  --line-strong:#33373f;
  /* Texte */
  --text:#f3f4f6;
  --text-2:#b9bec8;
  --muted:#7c8391;
  /* L'accent SURGE : l'éclair. Un seul, utilisé avec parcimonie. */
  --accent:#ffe14a;
  --accent-ink:#0b0b0c;
  --accent-soft:color-mix(in srgb,var(--accent) 13%,transparent);
  --accent-line:color-mix(in srgb,var(--accent) 38%,transparent);
  /* Sens : rouge = conflit ou direct, vert = validé, bleu = zones et vérification */
  --red:#ff4d5e;
  --red-soft:#ff4d5e1f;
  --green:#3ddc8c;
  --green-soft:#3ddc8c1c;
  --blue:#4ea8ff;
  --amber:#ffb454;
  /* Formes */
  --r-sm:8px;
  --r:10px;
  --r-lg:16px;
  --r-xl:20px;
  --r-btn:10px;
  --shadow:0 24px 60px -24px #000c;
  /* Typographie */
  --font:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --display:'Barlow Condensed',Inter,Impact,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --page:1280px;
  --gutter:28px;
}

/* --- Base ------------------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box}
html{background:var(--bg);-webkit-text-size-adjust:100%;scroll-padding-top:80px}
body{margin:0;min-height:100vh;background:
  radial-gradient(1100px 520px at 88% -120px,color-mix(in srgb,var(--accent) 5%,transparent),transparent 70%),var(--bg);
  color:var(--text);font:400 14.5px/1.55 var(--font);font-feature-settings:'cv11','ss01';
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
::selection{background:var(--accent);color:var(--accent-ink)}
img,svg{max-width:100%}
a{color:inherit}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mobile-break{display:none}

h1,h2,h3{margin:0;color:var(--text);font-weight:700;letter-spacing:-.03em;line-height:1.08;text-wrap:balance}
h1{font-size:clamp(30px,3.3vw,44px)}
h2{font-size:clamp(20px,1.9vw,25px);letter-spacing:-.025em;margin-bottom:10px}
h3{font-size:16.5px;letter-spacing:-.015em;margin:14px 0 8px}
p{margin:8px 0 16px;color:var(--text-2);line-height:1.6}
small{font-size:12px}
strong,b{font-weight:650}
code{font:500 12.5px/1.4 var(--mono);background:var(--surface-3);border:1px solid var(--line);border-radius:6px;padding:2px 6px;color:var(--text)}
hr{border:0;border-top:1px solid var(--line);margin:20px 0}

.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:650;letter-spacing:.11em;
  text-transform:uppercase;color:var(--muted);line-height:1.3}
.eyebrow::before{content:'';width:12px;height:2px;border-radius:2px;background:var(--accent);flex:none}
.muted{color:var(--muted);font-size:13px;line-height:1.55}
p.muted{margin:10px 0}
.optional{font-weight:400;color:var(--muted);font-size:11.5px;margin-left:4px}
.field-hint{margin:7px 0 0;font-size:12.5px;color:var(--muted);line-height:1.5}
.form-error{color:#ff8b96;font-size:13px;margin:10px 0}
.form-error:empty{display:none}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.full{width:100%}
.empty{grid-column:1/-1;padding:40px 24px;text-align:center;color:var(--muted);background:var(--surface);
  border:1px dashed var(--line-strong);border-radius:var(--r-lg);line-height:1.6}
.empty button{margin:14px auto 0}

/* --- Contrôles ------------------------------------------------------------- */
button,.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:40px;
  padding:9px 16px;border:1px solid var(--line);border-radius:var(--r-btn);background:var(--surface-2);
  color:var(--text);font:600 13.5px/1.25 var(--font);letter-spacing:-.005em;text-decoration:none;cursor:pointer;
  transition:background-color .16s,border-color .16s,color .16s,box-shadow .2s,transform .16s;-webkit-tap-highlight-color:transparent}
button:not(:disabled):hover,.button:hover{background:var(--surface-3);border-color:var(--line-strong)}
button:not(:disabled):active,.button:active{transform:translateY(1px)}
button:disabled{opacity:.42;cursor:not-allowed}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.primary,button.primary,a.button.primary{background:var(--accent);border-color:transparent;color:var(--accent-ink)}
.primary:not(:disabled):hover,a.button.primary:hover{background:var(--accent);border-color:transparent;
  filter:brightness(1.06);box-shadow:0 10px 30px -12px var(--accent)}
.link-button{min-height:0;padding:4px 2px;border:0;background:none;color:var(--text-2);font-weight:550;text-decoration:underline;
  text-decoration-color:var(--line-strong);text-underline-offset:3px}
.link-button:not(:disabled):hover{background:none;color:var(--text);text-decoration-color:var(--text-2)}
.danger{color:var(--red)}

/* Boutons enrichis par buttons.js : l'icône suit le texte, sans boîte autour. */
.surge-action-icon{display:inline-grid;place-items:center;font-size:15px;line-height:1;opacity:.75;transition:transform .18s}
.surge-action-icon svg{width:16px;height:16px}
.surge-action:not(:disabled):hover .surge-action-icon{transform:translateX(2px);opacity:1}
.surge-action.full{width:100%}

input,select,textarea{width:100%;max-width:100%;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);
  background:var(--field);color:var(--text);font:400 14px/1.4 var(--font);transition:border-color .16s,box-shadow .16s}
input::placeholder,textarea::placeholder{color:#5d636f}
input:hover,select:hover,textarea:hover{border-color:var(--line-strong)}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}
select{appearance:none;padding-right:34px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237c8391' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center}
input[type=checkbox]{width:18px;height:18px;padding:0;accent-color:var(--accent);flex:none}
input[type=range]{padding:0;border:0;background:none;accent-color:var(--accent);height:26px;box-shadow:none}
input[type=color]{height:42px;padding:4px;cursor:pointer}
input[type=file]{padding:9px;font-size:13px;color:var(--text-2)}
input[type=file]::file-selector-button{margin-right:12px;border:1px solid var(--line);border-radius:7px;background:var(--surface-3);color:var(--text);font:600 12.5px var(--font);padding:7px 11px;cursor:pointer}
textarea{resize:vertical}
label{display:block;color:var(--text-2);font-size:12.5px;font-weight:550}
label>input,label>select,label>textarea{display:block;margin-top:7px}
label+label,form>label{margin-top:14px}
.checkbox-line{display:flex!important;align-items:center;gap:10px;font-size:13.5px;color:var(--text);margin:16px 0}
.checkbox-line input{margin:0}
.field-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:14px 0}
.field-pair label{margin:0}

details>summary{cursor:pointer;list-style:none;color:var(--text-2);font-weight:600;font-size:13.5px}
details>summary::-webkit-details-marker{display:none}

.tag{display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 10px;border:1px solid var(--line);border-radius:99px;
  background:var(--surface-2);color:var(--text-2);font-size:10.5px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}
.tag-live{border-color:#ff4d5e55;background:var(--red-soft);color:#ff8a95}
.tag-live::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--red);animation:pulse 1.6s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 #ff4d5e99}70%{box-shadow:0 0 0 7px #ff4d5e00}100%{box-shadow:0 0 0 0 #ff4d5e00}}

.flag{width:20px;height:15px;border-radius:3px;object-fit:cover;vertical-align:-3px;margin-right:6px;flex:none;
  background:var(--surface-3);box-shadow:0 0 0 1px #ffffff1f inset}
.epic-check,.epic-todo{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;
  font-size:9px;font-weight:800;line-height:1;margin-left:6px;flex:none;vertical-align:1px}
.epic-check{background:var(--blue);color:#03101d}
.epic-todo{color:var(--muted);box-shadow:0 0 0 1px currentColor;opacity:.6}
.epic-line{display:flex;align-items:flex-start;gap:8px;margin:12px 0 0;font-size:13.5px;color:var(--muted)}
.epic-line .epic-check,.epic-line .epic-todo{margin:2px 0 0}
.epic-line.ok{color:var(--text)}

/* --- En-tête --------------------------------------------------------------- */
#app{min-height:100vh;display:flex;flex-direction:column}
#app>header{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:22px;height:66px;
  padding:0 max(var(--gutter),calc((100% - var(--page))/2));background:color-mix(in srgb,var(--bg) 82%,transparent);
  border-bottom:1px solid var(--line-soft);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none;border-radius:8px}
.brand>img{width:26px;height:32px;transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
.brand:hover>img{transform:rotate(-8deg) scale(1.06)}
.brand-word{font:800 italic 27px/1 var(--display);letter-spacing:.02em;color:var(--text);white-space:nowrap}
.brand-word>span{color:inherit}
.edition{font-size:10.5px;font-weight:650;letter-spacing:.14em;color:var(--muted);padding-left:18px;border-left:1px solid var(--line)}
.header-explore{min-height:36px;padding:7px 14px;background:transparent;border-color:transparent;color:var(--text-2)}
.header-explore:not(:disabled):hover{background:var(--surface-2);border-color:var(--line);color:var(--text)}
.header-explore.active{color:var(--text);background:var(--surface-2);border-color:var(--line)}
.header-explore>span[aria-hidden],nav button>span[aria-hidden]{display:none}
.account{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px}
#account-action{min-height:40px;padding:4px 12px 4px 4px;border-radius:99px;gap:10px;background:var(--surface-2)}
#account-action:not(:has(.header-avatar)){padding:8px 16px;background:var(--accent);color:var(--accent-ink);border-color:transparent}
#account-action:not(:has(.header-avatar)):hover{background:var(--accent);filter:brightness(1.06)}
.header-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--accent);color:var(--accent-ink);
  font:800 italic 17px/1 var(--display)}
.header-user{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;font-size:13px}
.header-user small{font-size:11px;font-weight:500;color:var(--muted)}
#account-action .flag{margin:0}
.connection{padding:10px var(--gutter);background:#2a1f0c;border-bottom:1px solid #4a3614;color:#ffd79a;font-size:13px;text-align:center}

/* --- Page ------------------------------------------------------------------ */
main{flex:1;width:100%;max-width:calc(var(--page) + var(--gutter)*2);margin:0 auto;padding:32px var(--gutter) 72px}
footer{display:flex;flex-direction:column;gap:10px;width:100%;max-width:calc(var(--page) + var(--gutter)*2);
  margin:0 auto;padding:22px var(--gutter) 34px;border-top:1px solid var(--line-soft);color:var(--muted);font-size:12px}
.footer-main{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.footer-links{display:flex;flex-wrap:wrap;gap:6px 18px}
.footer-links a{color:var(--text-2);text-decoration:none}
.footer-links a:hover{color:var(--accent)}
.epic-disclaimer{margin:4px 0 0;font-size:11px;letter-spacing:.04em;color:var(--text-2)}
.footer-note{margin:0;font-size:11.5px;line-height:1.5}
.brand-mini{font:800 italic 15px/1 var(--display);letter-spacing:.06em;color:var(--text-2)}

.panel{position:relative;min-width:0;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.panel>h2:first-child,.panel>.eyebrow+h2{margin-top:10px}
.panel>.eyebrow:first-child{margin-bottom:2px}
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:8px 0 26px}
.pagehead h1{margin-top:12px}
.pagehead p{margin:10px 0 0;max-width:620px}
.pagehead>select{width:auto;min-width:220px}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:44px 0 16px}
.section-heading h2{margin:10px 0 0}
.headline-count{text-align:right;flex:none}
.headline-count strong{display:block;font:800 italic 52px/.9 var(--display);color:var(--accent)}
.headline-count span{font-size:11px;font-weight:650;letter-spacing:.1em;color:var(--muted)}

.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 20px}
.metric{padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.metric strong{display:block;font:800 italic 40px/1 var(--display);letter-spacing:.01em;color:var(--text);font-variant-numeric:tabular-nums}
.metric span{display:block;margin-top:8px;font-size:12px;color:var(--muted)}
.panel .metrics{margin:18px 0}
.panel .metric{background:var(--surface-2);padding:14px 16px}
.panel .metric strong{font-size:32px}

.stat-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line-soft);font-size:13.5px;color:var(--text-2)}
.stat-row:last-child{border-bottom:0}
.stat-row strong{color:var(--text);font-variant-numeric:tabular-nums}
.stat-row small{display:block;margin-top:3px}

.toast{position:fixed;z-index:100;left:50%;bottom:24px;transform:translateX(-50%);display:flex;align-items:center;gap:14px;
  max-width:calc(100% - 32px);padding:12px 14px 12px 18px;background:var(--surface-3);border:1px solid var(--line-strong);
  border-radius:12px;box-shadow:var(--shadow);font-size:13.5px;animation:toast .28s cubic-bezier(.2,1.3,.4,1)}
.toast::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--green);flex:none}
.toast.error::before{background:var(--red)}
.toast button{min-height:32px;padding:5px 12px}
@keyframes toast{from{opacity:0;transform:translate(-50%,10px)}}

/* --- Accueil : tournoi à la une ------------------------------------------- */
.featured-arena{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,1fr);gap:20px;margin-bottom:20px}
.featured-main{position:relative;display:flex;flex-direction:column;overflow:hidden;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-xl)}
.featured-poster{height:200px;flex:none}
#featured-event{padding:26px 30px 26px}
#featured-event h1{margin:14px 0 6px;font-size:clamp(32px,3.6vw,48px)}
#featured-event p{max-width:560px}
.featured-facts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;margin:4px 0 22px;font-size:13px;color:var(--muted)}
.featured-facts b{font:800 italic 26px/1 var(--display);color:var(--text);margin-right:3px;font-variant-numeric:tabular-nums}
.featured-facts span:last-child:not(:has(b)){display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:99px;
  background:var(--accent-soft);color:var(--accent);font-size:10.5px;font-weight:650;letter-spacing:.07em}
.featured-main #next-countdown{margin-top:auto;border-top:1px solid var(--line);border-radius:0;background:var(--surface-2)}

.featured-aside{display:flex;flex-direction:column;gap:6px;padding:28px;background:
  radial-gradient(420px 260px at 100% 0,var(--accent-soft),transparent 70%),var(--surface);
  border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;position:relative}
.featured-aside::after{content:'';position:absolute;right:-34px;bottom:-40px;width:170px;height:210px;
  background:url(/assets/surge.svg) center/contain no-repeat;opacity:.05;transform:rotate(-8deg);pointer-events:none}
.featured-aside h2{font-size:28px;margin:14px 0 4px}
.featured-aside p{margin:4px 0 14px}
.featured-aside>button{justify-content:space-between;width:100%}
.invite-separator{display:flex;align-items:center;gap:12px;margin:20px 0 6px;color:var(--muted);font-size:12px}
.invite-separator::after{content:'';flex:1;height:1px;background:var(--line)}
.invite-help{font-size:13px}

.arena-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 8px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.arena-summary>div{position:relative;display:flex;flex-direction:column;gap:6px;padding:20px 22px}
.arena-summary>div+div{border-left:1px solid var(--line-soft)}
.arena-summary strong{font:800 italic 38px/1 var(--display);font-variant-numeric:tabular-nums}
.arena-summary>div:first-child strong{color:var(--accent)}
.arena-summary span:last-child{font-size:12px;color:var(--muted)}
.summary-index{position:absolute;top:16px;right:18px;font:500 11px var(--mono);color:#4a4f59}

/* --- Catalogue ------------------------------------------------------------- */
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px}
.filters input{flex:1 1 240px;width:auto}
.filters select{flex:0 1 210px;width:auto}
.filters .muted{margin-left:auto}
.event-quick-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.event-quick-filters button{min-height:34px;padding:6px 14px;border-radius:99px;background:transparent;color:var(--text-2);font-weight:550;font-size:13px}
.event-quick-filters button[aria-pressed=true]{background:var(--text);border-color:var(--text);color:var(--bg)}
.events{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:18px}
.event-card{display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  cursor:pointer;transition:transform .22s cubic-bezier(.2,.9,.3,1),border-color .2s,box-shadow .22s}
.event-card:hover{transform:translateY(-3px);border-color:var(--line-strong);box-shadow:0 22px 50px -26px #000}
.event-cover{height:150px;flex:none}
.event-cover>.tag{position:absolute;left:14px;top:14px;z-index:2;background:#0b0c0fcc;backdrop-filter:blur(6px)}
.event-mode{position:absolute;left:16px;bottom:14px;z-index:2;font:800 italic 15px/1 var(--display);letter-spacing:.06em;color:#fff}
.event-save{position:absolute;right:12px;top:12px;z-index:2;width:34px;min-height:34px;height:34px;padding:0;border-radius:50%;
  background:#0b0c0fcc;border-color:#ffffff1f;color:var(--text-2);font-size:15px;backdrop-filter:blur(6px)}
.event-save[aria-pressed=true]{color:var(--accent)}
.event-body{display:flex;flex-direction:column;flex:1;padding:18px 20px 20px}
.event-meta{display:flex;justify-content:space-between;gap:10px;font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--muted)}
.event-body h2{margin:12px 0 4px;font-size:21px}
.event-description{margin:2px 0 16px;font-size:13.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.event-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:auto;font-size:10.5px;font-weight:600;letter-spacing:.06em;color:var(--muted)}
.event-facts strong{display:block;margin-bottom:3px;font:800 italic 24px/1 var(--display);letter-spacing:.01em;color:var(--text)}
.event-facts small{font-size:.62em;color:var(--muted)}
.slot-track{height:4px;margin:14px 0 16px;background:var(--surface-3);border-radius:4px;overflow:hidden}
.slot-track i{display:block;height:100%;background:var(--accent);border-radius:4px}
.event-actions{display:flex;gap:8px}
.event-actions button{flex:1;min-width:0}

/* Affiches : l'image de l'organisateur, sinon l'île assombrie et l'éclair. */
.tournament-poster{position:relative;isolation:isolate;overflow:hidden;background:
  radial-gradient(120% 110% at 100% 0,color-mix(in srgb,var(--poster-accent,var(--accent)) 30%,transparent),transparent 58%),
  linear-gradient(160deg,#0f1115 20%,color-mix(in srgb,var(--poster-secondary,#2a2e36) 60%,#07080a))}
.tournament-poster::before{content:'';position:absolute;inset:0;z-index:-1;background:url(/assets/fortnite-map.jpg) center 40%/cover;opacity:.3;filter:saturate(.75)}
.tournament-poster::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 40%,#07080ad0);pointer-events:none}
.poster-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.poster-orbit{position:absolute;right:6%;top:50%;width:92px;height:112px;transform:translateY(-50%) rotate(-6deg);
  background:url(/assets/surge.svg) center/contain no-repeat;opacity:.16;z-index:0;transition:transform .5s cubic-bezier(.2,1.2,.4,1),opacity .3s}
.event-card:hover .poster-orbit{transform:translateY(-54%) rotate(-12deg) scale(1.06);opacity:.28}
.poster-lettering{display:none}

/* --- Compte à rebours ------------------------------------------------------ */
.countdown-strip{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 30px}
.countdown-caption{display:flex;flex-direction:column;gap:6px;min-width:0}
.countdown-caption strong{font-size:17px;font-weight:650;letter-spacing:-.01em;text-transform:capitalize}
.countdown-caption small{font-size:12px;color:var(--muted)}
.countdown-clock{display:flex;gap:8px;flex:none}
.countdown-clock>div:not(.countdown-idle){display:flex;flex-direction:column;align-items:center;justify-content:center;width:62px;height:62px;
  background:var(--surface);border:1px solid var(--line);border-radius:12px}
.countdown-clock b{font:800 italic 29px/1 var(--display);font-variant-numeric:tabular-nums;color:var(--text)}
.countdown-clock span{margin-top:4px;font-size:9px;font-weight:650;letter-spacing:.12em;color:var(--muted)}
.countdown-clock>div:last-child:not(.countdown-idle) b{color:var(--accent)}
.countdown-idle{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}
.countdown-status{font-weight:650;color:var(--text)}
.countdown-idle small{color:var(--muted)}
.compact-countdown{margin:12px 0 0;padding:14px 22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.compact-countdown .countdown-clock>div:not(.countdown-idle){width:54px;height:54px}
.compact-countdown .countdown-clock b{font-size:25px}

/* --- Guide ----------------------------------------------------------------- */
.arena-guide{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:40px;margin-top:56px;padding:34px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl)}
.arena-guide h2{font-size:30px;margin:14px 0 6px}
.guide-questions details{border-bottom:1px solid var(--line-soft)}
.guide-questions details:first-child{border-top:1px solid var(--line-soft)}
.guide-questions summary{display:flex;align-items:center;gap:14px;padding:17px 2px;color:var(--text);font-size:15px;font-weight:600}
.guide-questions summary>span{font:500 11.5px var(--mono);color:var(--muted)}
.guide-questions summary>b{margin-left:auto;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;
  background:var(--surface-2);border:1px solid var(--line);font-weight:400;font-size:14px;color:var(--text-2);transition:transform .25s,background .2s}
.guide-questions details[open] summary>b{transform:rotate(45deg);background:var(--accent);color:var(--accent-ink);border-color:transparent}
.guide-questions details p{margin:0 0 18px 40px;font-size:14px;max-width:62ch}

/* --- Espace tournoi -------------------------------------------------------- */
.tournament-shell{margin-bottom:28px}
.tournament-breadcrumb{display:flex;align-items:center;gap:10px;margin-bottom:16px;font-size:13px;color:var(--muted)}
.tournament-breadcrumb #event-breadcrumb-name{color:var(--text-2);font-weight:550}
.back-button{min-height:32px;padding:5px 12px;background:transparent;font-size:12.5px;color:var(--text-2)}
.back-button .surge-action-icon{order:-1}
.tournament-banner{position:relative;isolation:isolate;display:flex;align-items:flex-end;justify-content:space-between;gap:28px;
  min-height:220px;padding:30px;overflow:hidden;background-color:var(--surface);background-size:cover;background-position:center;
  border:1px solid var(--line);border-radius:var(--r-xl)}
.tournament-banner::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#07080ae6,#07080a33 70%)}
.tournament-banner::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none}
.tournament-identity{min-width:0;max-width:760px}
.event-logo{display:grid;place-items:center;width:62px;height:62px;margin-bottom:18px;overflow:hidden;border-radius:14px;
  background:#0b0c0fb3;border:1px solid #ffffff24;backdrop-filter:blur(8px)}
.event-logo img{width:100%;height:100%;object-fit:cover}
.event-logo span{font:800 italic 24px/1 var(--display);letter-spacing:.02em;color:var(--text)}
.tournament-identity h1{margin:12px 0 4px;font-size:clamp(32px,4vw,52px)}
.tournament-identity p{margin:6px 0 0;color:#d4d8df;max-width:600px}
.event-summary{display:flex;flex-direction:column;align-items:flex-end;gap:14px;flex:none}
.event-summary>div{display:grid;grid-template-rows:auto auto;grid-auto-flow:column;column-gap:26px;row-gap:4px;text-align:right}
.event-summary strong{font:800 italic 36px/1 var(--display);font-variant-numeric:tabular-nums}
.event-summary strong small{font-size:.5em;color:var(--muted);margin-left:1px}
.event-summary span:not(.tag){font-size:10.5px;font-weight:650;letter-spacing:.1em;color:var(--muted)}
.banner-decoration{display:none}
.tournament-tabs{display:flex;gap:2px;margin-top:18px;overflow-x:auto;border-bottom:1px solid var(--line);scrollbar-width:none}
.tournament-tabs::-webkit-scrollbar{display:none}
.tournament-tabs button{flex:none;min-height:44px;padding:10px 14px;background:transparent;border:0;border-radius:0;color:var(--muted);
  font-weight:550;box-shadow:inset 0 -2px transparent}
.tournament-tabs button:not(:disabled):hover{background:transparent;color:var(--text)}
.tournament-tabs button.active{color:var(--text);box-shadow:inset 0 -2px var(--accent)}

/* --- Aperçu ---------------------------------------------------------------- */
.overview-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;align-items:start}
.play-panel>p{margin-bottom:20px}
.player-steps{display:flex;flex-direction:column;gap:4px;margin:0 0 22px}
.player-steps>div{position:relative;display:flex;align-items:center;gap:14px;padding:10px 0}
.player-steps>div:not(:last-child)::after{content:'';position:absolute;left:17px;top:48px;bottom:-6px;width:1px;background:var(--line)}
.player-steps>div>span{display:grid;place-items:center;width:35px;height:35px;flex:none;border-radius:50%;border:1px solid var(--line-strong);
  background:var(--surface-2);font:800 italic 15px/1 var(--display);color:var(--text-2)}
.player-steps .step-done>span{background:var(--accent);border-color:transparent;color:var(--accent-ink)}
.player-steps strong{display:block;font-size:14.5px}
.player-steps small{color:var(--muted)}
.play-panel>button.full{margin-top:10px}
.format-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line-soft);font-size:13.5px}
.format-row span{color:var(--muted)}
.points-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}
.points-cards>div{padding:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px}
.points-cards strong{display:block;font:800 italic 36px/1 var(--display);color:var(--accent)}
.points-cards span{display:block;margin-top:6px;font-size:10.5px;font-weight:650;letter-spacing:.08em;color:var(--muted)}
.prize-block{margin:16px 0;padding:18px;background:linear-gradient(135deg,var(--accent-soft),transparent 60%),var(--surface-2);
  border:1px solid var(--accent-line);border-radius:12px}
.prize-total{display:block;margin-top:8px;font:800 italic clamp(34px,4vw,44px)/1 var(--display);font-variant-numeric:tabular-nums}
.prize-places{display:grid;gap:1px;margin-top:14px;background:var(--line);border-radius:8px;overflow:hidden}
.prize-places>div{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;background:var(--surface-2);font-size:13.5px}
.prize-places strong{font-variant-numeric:tabular-nums}
.prize-places sup{font-size:.7em;margin-left:1px}
.map-preview-link{justify-content:space-between;margin-top:6px}
.map-preview-link>span[aria-hidden]:first-child{color:var(--accent)}
.community-panel,#lobby-banner{margin-top:20px}
#lobby-banner{border-color:var(--accent-line);background:linear-gradient(135deg,var(--accent-soft),transparent 55%),var(--surface)}
#lobby-code-slot p:first-child{color:var(--accent)}

/* --- Classement ------------------------------------------------------------ */
.ranking-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}
.ranking-layout.closed{grid-template-columns:minmax(0,1fr)}
.ranking-layout>.panel:first-child{padding:6px 6px 16px}
.ranking-layout .scoring-note{padding:0 16px;margin:12px 0 0}
.ranking-layout .empty{margin:10px;border:0}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:13.5px}
th{padding:14px 16px 10px;text-align:left;font-size:10.5px;font-weight:650;letter-spacing:.09em;color:var(--muted)}
td{padding:14px 16px;border-top:1px solid var(--line-soft);vertical-align:middle;font-variant-numeric:tabular-nums}
tbody tr{transition:background .15s}
tbody tr:hover{background:#ffffff05}
td:first-child{width:52px;font:800 italic 20px/1 var(--display);color:var(--muted)}
#rank-body td[data-rank]{color:var(--text-2)}
#rank-body td[data-rank="1"]{color:var(--accent)}
#rank-body td[data-rank="2"],#rank-body td[data-rank="3"]{color:var(--text)}
td small{display:block;margin-top:4px;font-size:11.5px;color:var(--muted)}
td.score{font:800 italic 24px/1 var(--display);color:var(--text)}
tr.row-selected{background:var(--accent-soft)!important;box-shadow:inset 3px 0 var(--accent)}
.member-line{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px 8px}
.member-line>span{align-self:center;color:var(--muted)}
.member-line button,.member-line button.member{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:0;
  padding:0;border:0;background:none;text-align:left;font-size:14px;font-weight:600;line-height:1.3;color:var(--text)}
.member-line button:not(:disabled):hover{background:none}
.member-line button>span:first-child{display:inline-flex;align-items:center;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:text-decoration-color .15s}
.member-line button:hover>span:first-child{text-decoration-color:var(--text-2)}
.member-line button[aria-pressed=true]>span:first-child{text-decoration-color:var(--accent)}
.member-line .flag{width:18px;height:13.5px;margin-right:6px}
.member-club{font-size:10.5px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.player-drawer{position:sticky;top:86px}
.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.drawer-head h2{margin:12px 0 0;font-size:26px;overflow-wrap:anywhere}
.drawer-head .flag{width:24px;height:18px;vertical-align:-2px}
.drawer-identity{overflow-wrap:anywhere}
.player-drawer .metrics{grid-template-columns:1fr 1fr;gap:8px}
button[data-close],#close-player{width:36px;min-height:36px;height:36px;padding:0;flex:none;border-radius:50%;background:transparent;font-size:19px;font-weight:400;color:var(--text-2)}

/* --- Statistiques ---------------------------------------------------------- */
.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.stats-detail{margin-top:20px}
.round-bar{display:grid;grid-template-columns:56px minmax(0,1fr) 64px;align-items:center;gap:12px;margin:14px 0;font-size:13px;color:var(--text-2)}
.round-bar strong{text-align:right;color:var(--text);font-variant-numeric:tabular-nums}
.bar-track{height:10px;background:var(--surface-3);border-radius:10px;overflow:hidden}
.bar-fill{height:100%;background:var(--accent);border-radius:10px;transition:width .6s cubic-bezier(.2,.9,.3,1)}

/* --- Organisation ---------------------------------------------------------- */
#org-content>.panel+.panel,#org-content>.panel+.org-grid,#org-content>.org-grid+.panel{margin-top:20px}
.org-grid{display:grid;grid-template-columns:minmax(290px,.85fr) minmax(0,1.4fr);gap:20px;align-items:start}
.attendance{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-soft);font-size:13.5px}
.attendance:last-child{border-bottom:0}
.attendance .muted{font-size:12px}
.attendance button{min-height:34px;padding:6px 12px;font-size:12.5px}
.org-controls{margin-top:20px}
.org-controls>button.primary{margin-top:18px}
.invite-button{margin-top:12px}
.collector-details{margin:16px 0 0;padding:14px 16px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px}
.collector-details>summary{display:flex;align-items:center;justify-content:space-between;gap:10px}
.collector-details>summary::after{content:'+';color:var(--muted);font-size:18px;font-weight:400;transition:transform .2s}
.collector-details[open]>summary::after{transform:rotate(45deg)}
.collector-details[open]>summary{margin-bottom:10px}
.collector-details label{margin-top:12px}
.result-table input{width:84px;padding:8px 10px;text-align:center;font-variant-numeric:tabular-nums}
.result-table td{padding:8px 12px}
.result-table td:first-child{width:auto;font:600 14px var(--font);color:var(--text)}
.result-table .result-team{white-space:normal;min-width:140px}
.result-table .result-team small{margin-top:3px}
#results-form>button{margin-top:16px}
.results-status{margin-top:10px}
.section-heading select{width:auto;min-width:150px}
.preparation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}
.preparation-grid>div{display:flex;gap:14px;padding:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px}
.preparation-grid strong{font-size:14px}
.preparation-grid p{margin:4px 0 0;font-size:13px;color:var(--muted)}
.readiness{display:grid;place-items:center;width:26px;height:26px;flex:none;border-radius:50%;border:1px dashed var(--line-strong);color:var(--muted);font-size:12px}
.readiness.ready{background:var(--green);border:0;color:#04130b;font-weight:800}
.engine-panel,#lobby-admin{margin-top:20px}
.engine-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.engine-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;margin-top:18px}
.engine-grid h3{margin-top:0}
.file-drop{display:flex;flex-direction:column;gap:10px;padding:20px;margin-bottom:12px;border:1px dashed var(--line-strong);border-radius:12px;
  background:var(--field);color:var(--text);font-size:14px;font-weight:600;transition:border-color .2s}
.file-drop:hover{border-color:var(--accent-line)}
.import-card{margin-top:14px;padding:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px}
.import-card h3{margin-top:0}
.history-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:13px}
.history-row time{color:var(--muted);font-variant-numeric:tabular-nums}
#discord-announcement{margin-top:8px;font:13px/1.6 var(--mono)}
.community-panel>button{margin-top:12px}
#lobby-admin form .row{margin-top:4px}

/* --- Replays --------------------------------------------------------------- */
.replay-notice{display:flex;flex-direction:column;gap:4px;margin-bottom:20px;padding:18px 20px;border:1px solid #ffb45440;border-radius:var(--r-lg);
  background:linear-gradient(135deg,#ffb45414,transparent 60%),var(--surface)}
.replay-notice strong{color:#ffd196}
.replay-notice p{margin:0;font-size:13.5px}
.replay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.replay-grid .row{margin-top:14px}
.replay-grid details{margin-top:14px}
.replay-window{margin-top:20px}
.replay-window-fields{display:grid;grid-template-columns:120px 1fr 1fr;gap:12px;margin:14px 0}
.replay-window-fields label{margin:0}
.replay-windows{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.replay-file-detail{color:var(--muted)}
#replay-content .pagehead+.replay-notice{margin-top:0}

/* --- Créateur / éditeur de tournoi --------------------------------------- */
.creator-draft{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;padding:12px 14px 12px 18px;
  background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:14px;font-size:13.5px}
.creator-draft span{margin-right:auto}
.creator-draft button{min-height:34px;padding:6px 14px}
.creator-head{margin:6px 0 22px}
.creator-head h1{margin:12px 0 4px;font-size:clamp(32px,3.6vw,48px);overflow-wrap:anywhere}
.creator-head p{margin:6px 0 0;max-width:640px}
.creator-steps{position:sticky;top:66px;z-index:20;display:flex;gap:6px;margin:0 calc(var(--gutter)*-1) 22px;padding:10px var(--gutter);overflow-x:auto;
  background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line-soft);scrollbar-width:none}
.creator-steps::-webkit-scrollbar{display:none}
.creator-steps a{display:inline-flex;align-items:center;gap:9px;flex:none;padding:7px 14px 7px 7px;border:1px solid var(--line);border-radius:99px;
  color:var(--text-2);font-size:13px;font-weight:600;text-decoration:none;transition:border-color .2s,background .2s,color .2s}
.creator-steps a span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--surface-3);font:800 italic 13px/1 var(--display);color:var(--text-2)}
.creator-steps a:hover{border-color:var(--line-strong);color:var(--text)}
.creator-steps a.current{background:var(--surface-2);border-color:var(--line-strong);color:var(--text)}
.creator-steps a.done span{background:var(--accent);color:var(--accent-ink)}
.creator-steps a.error span{background:var(--red);color:#fff}
.creator-steps a.warn span{background:var(--amber);color:#1a1204}
body:has([data-view="create"]:not([hidden])) .toast{bottom:92px}
.creator-layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:24px;align-items:start}
.creator-form{display:flex;flex-direction:column;gap:18px;min-width:0}
.creator-step{scroll-margin-top:136px;padding:26px 28px 28px}
.creator-step>header{display:flex;gap:16px;align-items:flex-start;margin-bottom:20px}
.step-index{font:800 italic 42px/.8 var(--display);color:var(--accent);letter-spacing:-.01em;flex:none}
.creator-step>header h2{margin:0 0 4px;font-size:24px}
.creator-step>header p{margin:0;font-size:13.5px}
.field-title{display:block;margin:22px 0 10px;font-size:12.5px;font-weight:600;color:var(--text-2)}
.field-title .optional{margin-left:6px}
.creator-step label+.field-title,.creator-step .field-title:first-child{margin-top:18px}

.choice-grid{display:grid;gap:10px}
.choice-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.choice-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.choice{position:relative;margin:0;cursor:pointer}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice-body{display:flex;flex-direction:column;gap:5px;height:100%;padding:14px 15px;background:var(--field);border:1px solid var(--line);border-radius:12px;
  transition:border-color .18s,background .18s,transform .18s}
.choice-body strong{font-size:14.5px;color:var(--text)}
.choice-body small{font-size:12px;font-weight:450;line-height:1.4;color:var(--muted)}
.choice:hover .choice-body{border-color:var(--line-strong)}
.choice input:checked+.choice-body{border-color:var(--accent);background:linear-gradient(135deg,var(--accent-soft),transparent 70%),var(--field);box-shadow:inset 0 0 0 1px var(--accent)}
.choice input:focus-visible+.choice-body{outline:2px solid var(--accent);outline-offset:2px}
.choice input:active+.choice-body{transform:scale(.98)}
.choice.disabled{cursor:not-allowed;opacity:.4}
.choice-icon{width:34px;height:34px;margin-bottom:6px;border-radius:9px;background:var(--surface-3) center/20px no-repeat}
.choice-icon.mode-br{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b9bec8' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M3 20h18M5 20V9l7-5 7 5v11M9 20v-6h6v6'/%3E%3C/svg%3E")}
.choice-icon.mode-zb{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b9bec8' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Cpath d='M12 4v4M12 16v4M4 12h4M16 12h4'/%3E%3C/svg%3E")}
.choice input:checked+.choice-body .choice-icon{background-color:var(--accent-soft)}
.players{display:flex;gap:4px;margin-bottom:6px;height:14px;align-items:center}
.players i{width:10px;height:10px;border-radius:50%;background:var(--line-strong);transition:background .2s}
.choice input:checked+.choice-body .players i{background:var(--accent)}

.field-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:start}
.chip-row{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;margin:0;cursor:pointer}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-flex;align-items:center;min-height:34px;padding:6px 13px;border:1px solid var(--line);border-radius:99px;background:var(--field);
  color:var(--text-2);font-size:13px;font-weight:550;transition:all .16s}
.chip:hover span{border-color:var(--line-strong);color:var(--text)}
.chip input:checked+span{background:var(--text);border-color:var(--text);color:var(--bg)}
.chip input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
#scoring-presets{margin-bottom:16px}
.stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--field);overflow:hidden}
.stepper button{width:40px;min-height:42px;padding:0;border:0;border-radius:0;background:transparent;font-size:18px;font-weight:400}
.stepper input{width:54px;padding:0;border:0;background:transparent;text-align:center;font:800 italic 22px var(--display);-moz-appearance:textfield}
.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{-webkit-appearance:none}
.stepper input:focus{box-shadow:none}

.upload-grid{display:grid;grid-template-columns:.8fr 1.5fr .8fr;gap:12px}
.upload-tile{display:flex;flex-direction:column;gap:10px;min-width:0}
.upload-drop{position:relative;display:grid;place-items:center;margin:0;overflow:hidden;cursor:pointer;background:
  repeating-linear-gradient(135deg,transparent 0 10px,#ffffff04 10px 20px),var(--field);border:1px dashed var(--line-strong);border-radius:14px;transition:border-color .2s,background-color .2s}
.upload-tile.logo .upload-drop{aspect-ratio:1}
.upload-tile.banner .upload-drop{aspect-ratio:auto;height:100%;min-height:130px}
.upload-tile.poster .upload-drop{aspect-ratio:3/4}
.upload-drop:hover,.upload-drop.over{border-color:var(--accent);background-color:var(--accent-soft)}
.upload-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.upload-drop img{width:100%;height:100%;object-fit:cover}
.upload-tile.logo .upload-drop img{object-fit:contain;padding:12%}
.upload-tile.filled .upload-drop{border-style:solid;border-color:var(--line)}
.upload-plus{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--surface-3);font-size:22px;color:var(--text-2);transition:transform .25s}
.upload-drop:hover .upload-plus{transform:rotate(90deg);background:var(--accent);color:var(--accent-ink)}
.upload-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.upload-meta strong{font-size:13.5px}
.upload-meta small{flex-basis:100%;order:3;font-size:11.5px;color:var(--muted)}
.upload-meta .link-button{margin-left:auto;font-size:12px}
.logo-palette{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;margin-top:16px;padding:16px;
  background:var(--surface-2);border:1px solid var(--line);border-radius:14px;animation:dialog .35s cubic-bezier(.2,1.2,.4,1)}
.logo-palette .field-title{margin:0 0 10px}
.logo-swatches{display:flex;gap:8px}
.logo-swatches button{width:34px;min-height:34px;height:34px;padding:0;border-radius:50%;background:var(--s);border:2px solid #ffffff26;transition:transform .18s}
.logo-swatches button:not(:disabled):hover{background:var(--s);transform:scale(1.15);border-color:#fff}
.palette-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.swatch-button{flex-direction:column;gap:8px;min-height:0;padding:10px 6px 9px;font-size:12px;font-weight:550;background:var(--field)}
.swatch-button i{width:100%;height:26px;border-radius:7px;background:linear-gradient(90deg,var(--c) 0 34%,var(--b) 34% 67%,var(--a) 67%);box-shadow:0 0 0 1px #ffffff14 inset}
.color-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0 4px}
.color-field{margin:0;padding:12px;background:var(--field);border:1px solid var(--line);border-radius:12px}
.color-field>span:first-child{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}
.color-field strong{font-size:13px;color:var(--text)}
.color-field small{font-size:11px;font-weight:450;color:var(--muted)}
.color-input{display:flex;gap:8px;align-items:center}
.color-input input[type=color]{width:38px;height:38px;flex:none;margin:0;padding:3px;border-radius:9px}
.color-input input[data-hex]{margin:0;padding:8px 10px;font:500 13px var(--mono);text-transform:uppercase}
.creator-more{margin-top:18px;padding:14px 16px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px}
.creator-more>summary{display:flex;justify-content:space-between}
.creator-more>summary::after{content:'+';color:var(--muted);font-size:18px;font-weight:400;transition:transform .2s}
.creator-more[open]>summary::after{transform:rotate(45deg)}
.creator-more[open]>summary{margin-bottom:12px}
.field-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin:12px 0}
.field-grid label{margin:0}
.field-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px}
.input-with-badge{position:relative;display:block;margin-top:7px}
.input-with-badge input{margin:0;padding-right:90px}
.input-with-badge b{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding:3px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:700}
.switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0 0;padding:14px 16px;cursor:pointer;
  background:var(--field);border:1px solid var(--line);border-radius:12px;transition:border-color .18s}
.switch-row:hover{border-color:var(--line-strong)}
.switch-row>span{display:flex;flex-direction:column;gap:3px}
.switch-row strong{font-size:14px;color:var(--text)}
.switch-row small{font-size:12px;font-weight:450;color:var(--muted);line-height:1.45}
.switch-row input{position:absolute;opacity:0;pointer-events:none}
.switch-row i{position:relative;flex:none;width:44px;height:26px;border-radius:99px;background:var(--surface-3);border:1px solid var(--line-strong);transition:background .2s}
.switch-row i::after{content:'';position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:var(--text-2);transition:transform .25s cubic-bezier(.3,1.4,.5,1),background .2s}
.switch-row input:checked~i{background:var(--accent);border-color:transparent}
.switch-row input:checked~i::after{transform:translateX(18px);background:var(--accent-ink)}
.switch-row input:focus-visible~i{outline:2px solid var(--accent);outline-offset:2px}
.creator-warning{margin:8px 0 0;padding:10px 12px;border-left:2px solid var(--amber);border-radius:0 8px 8px 0;background:#ffb45414;font-size:12.5px;color:#ffd196}
.capacity{padding:16px 18px;background:var(--field);border:1px solid var(--line);border-radius:12px}
.capacity-head{display:flex;align-items:baseline;justify-content:space-between}
.capacity-head .field-title{margin:0}
.capacity-head strong{font:800 italic 26px/1 var(--display)}
.capacity input[type=range]{width:100%;margin:10px 0 0}
.capacity-scale{display:flex;justify-content:space-between;font:500 11px var(--mono);color:var(--muted)}
.capacity .field-hint{margin-top:10px}
#creator-form textarea[name=rulesText]{min-height:150px;line-height:1.6}

.points-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,.8fr);gap:18px;align-items:stretch;margin-bottom:12px}
.tier-list{display:flex;flex-direction:column;gap:8px}
.tier{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 14px;background:var(--field);border:1px solid var(--line);border-radius:12px;font-size:13px;color:var(--muted);animation:dialog .25s ease}
.tier input{width:70px;margin:0;padding:7px 8px;text-align:center;font:800 italic 18px var(--display);background:var(--surface-2)}
.tier-arrow{color:var(--accent)}
.tier button{margin-left:auto;width:32px;min-height:32px;padding:0;border-radius:8px;background:transparent;border-color:transparent;font-size:17px;color:var(--muted)}
.tier button:not(:disabled):hover{color:var(--red);background:var(--red-soft);border-color:transparent}
.points-chart{position:relative;display:flex;align-items:flex-end;gap:3px;min-height:150px;padding:14px 14px 26px;background:var(--field);border:1px solid var(--line);border-radius:12px}
.points-chart i{flex:1;min-height:2px;background:var(--accent);border-radius:3px 3px 0 0;opacity:.9;transition:height .35s cubic-bezier(.2,.9,.3,1)}
.points-chart i:nth-child(n+4){opacity:.6}
.points-chart i:nth-child(n+11){opacity:.35}
.points-chart span{position:absolute;bottom:7px;font:500 10px var(--mono);color:var(--muted)}
.points-chart span:first-of-type{left:14px}
.points-chart span:last-of-type{right:14px}
.file-link{position:relative;display:inline-flex;align-items:center;cursor:pointer;margin:0}
.simulator{margin-top:18px;padding:16px 18px;border:1px solid var(--accent-line);border-radius:12px;background:linear-gradient(135deg,var(--accent-soft),transparent 60%),var(--field)}
.simulator .field-title{margin:0 0 6px}
.simulator p{margin:0;color:var(--text);font-size:14.5px;line-height:2.2}
.simulator input{display:inline-block;width:62px;margin:0 4px;padding:4px 6px;text-align:center;font:800 italic 18px var(--display)}
.simulator strong{font:800 italic 24px var(--display);color:var(--accent);margin-left:4px}
.simulator small{font:500 12px var(--font);color:var(--muted)}
.reward-list{display:flex;flex-direction:column;gap:8px;margin:6px 0 14px}
.reward{display:grid;grid-template-columns:46px 150px minmax(0,1fr) 34px;gap:8px;align-items:center;padding:6px;background:var(--field);border:1px solid var(--line);border-radius:12px;animation:dialog .25s ease}
.reward-place{font:800 italic 22px var(--display);text-align:center;color:var(--accent)}
.reward-place sup{font-size:.55em}
.reward input{margin:0;padding:8px 10px}
.reward-amount{position:relative}
.reward-amount input{padding-right:30px;font-variant-numeric:tabular-nums}
.reward-amount b{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--muted)}
.reward button{width:32px;min-height:32px;padding:0;border-color:transparent;background:transparent;font-size:17px;color:var(--muted)}
.reward button:not(:disabled):hover{color:var(--red);background:var(--red-soft);border-color:transparent}
.reward-empty{margin:4px 0}
#reward-sum{margin-left:auto}
.creator-submit{position:sticky;bottom:12px;z-index:15;padding:16px 18px;background:color-mix(in srgb,var(--surface-2) 94%,transparent);
  border:1px solid var(--line-strong);border-radius:16px;box-shadow:var(--shadow);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.creator-submit{padding:10px 10px 10px 18px}
.creator-submit .row{flex-wrap:nowrap}
.creator-submit .form-error{margin:0 0 8px}
.creator-status{flex:1;min-width:0;font-size:13px}
.creator-status a,.creator-status .ok{display:flex;align-items:center;gap:9px;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.creator-status a{color:#ff9aa4}
.creator-status .ok{color:var(--text);font-weight:600}
.creator-status a>span,.creator-status .ok>span{display:grid;place-items:center;width:18px;height:18px;flex:none;border-radius:50%;background:var(--red);color:#fff;font:700 11px var(--font)}
.creator-status .ok>span{background:var(--green);color:#04130b}
.creator-submit .primary{min-height:44px;padding:10px 22px;font-size:14px}
.creator-check{display:flex;flex-direction:column;gap:6px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:14px}
.creator-check a{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;line-height:1.45;color:var(--muted);text-decoration:none}
.creator-check a:hover{color:var(--text)}
.creator-check a span{display:grid;place-items:center;width:17px;height:17px;flex:none;border-radius:50%;background:var(--surface-3);font:700 10px var(--font)}
.creator-check a.blocking{color:#ff9aa4}
.creator-check a.blocking span{background:var(--red);color:#fff}
.ready-line{display:flex;align-items:center;gap:9px;margin:0;color:var(--text);font-size:13px;font-weight:600}
.ready-line span{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--green);color:#04130b;font-size:11px}

.creator-preview{position:sticky;top:136px;display:flex;flex-direction:column;gap:14px}
.preview-switch{display:flex;padding:3px;background:var(--surface-2);border:1px solid var(--line);border-radius:11px}
.preview-switch button{flex:1;min-height:32px;padding:4px 10px;border:0;background:transparent;font-size:12.5px;color:var(--muted)}
.preview-switch button.active{background:var(--surface-3);color:var(--text)}
#creator-preview{--r-btn:var(--event-radius,10px);pointer-events:none;user-select:none}
.preview-card{cursor:default;box-shadow:0 30px 70px -40px #000}
.mini-page{overflow:hidden;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-lg)}
.mini-facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-bottom:16px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.mini-facts>div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;background:var(--surface)}
.mini-facts strong{font-size:13.5px}
.mini-facts span{font-size:10.5px;color:var(--muted)}
.mini-points{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.mini-points>div{padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:10px}
.mini-points strong{display:block;font:800 italic 28px/1 var(--display);color:var(--accent)}
.mini-points span{font-size:10.5px;color:var(--muted)}
.mini-prize{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;padding:12px;border:1px solid var(--accent-line);border-radius:10px;background:var(--accent-soft)}
.mini-prize span{font-size:11px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2)}
.mini-prize strong{font:800 italic 24px var(--display)}
.mini-rules{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.mini-rules span,.entry-rules span{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:99px;background:#4ea8ff1c;color:#9ccfff;font-size:11px;font-weight:650}
.mini-rules span::before,.entry-rules span::before{content:'✓';font-size:10px}
.creator-summary{display:flex;flex-wrap:wrap;gap:6px}
.creator-summary span{display:inline-flex;align-items:center;height:26px;padding:0 10px;border:1px solid var(--line);border-radius:99px;font-size:11.5px;color:var(--text-2);background:var(--surface)}

.lobby-meter{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;margin-top:12px}
.lobby-meter i{height:6px;border-radius:3px;background:var(--surface-3);transition:background .25s}
.lobby-meter i.on{background:var(--accent)}
.lobby-meter+.field-hint strong{color:var(--text)}
.cumul-row{margin:0 0 14px}

/* Aperçus (créateur) : bannière miniature */
.preview-banner{position:relative;isolation:isolate;min-height:220px;padding:22px;display:flex;flex-direction:column;justify-content:flex-end;background-size:cover}
.preview-banner::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none}
.preview-banner h2{margin:10px 0 4px;font-size:28px}
.preview-banner p{margin:4px 0 0;color:#d4d8df;font-size:13px}
.preview-logo{display:grid;place-items:center;width:48px;height:48px;margin-bottom:16px;overflow:hidden;border-radius:12px;background:#0b0c0fb3;
  border:1px solid #ffffff24;font:800 italic 19px var(--display)}
.preview-logo img{width:100%;height:100%;object-fit:cover}
.preview-counts{display:flex;gap:16px;margin-top:12px;font-size:10.5px;font-weight:650;letter-spacing:.1em;color:#d4d8df}
.preview-counts span{color:var(--muted)}
.preview-tabs{display:flex;gap:2px;padding:0 14px;border-bottom:1px solid var(--line)}
.preview-tabs span{padding:11px 9px;font-size:12px;color:var(--muted)}
.preview-tabs .active{color:var(--text);box-shadow:inset 0 -2px var(--accent)}
.preview-body{padding:18px}
.preview-body>.primary{width:100%}

/* Ce que voient les joueurs : conditions, diffusion, règlement */
.entry-rules{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 4px}
.watch-panel{margin-top:20px}
.watch-panel .row{margin-top:12px}
.watch-button{gap:10px}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--red);animation:pulse 1.6s ease-out infinite}
.rules-panel{margin-top:20px}
.rules-panel>summary{display:block;list-style:none}
.rules-panel>summary h2{margin:10px 0 0;display:flex;justify-content:space-between;align-items:center}
.rules-panel>summary h2::after{content:'+';font:400 22px var(--font);color:var(--muted);transition:transform .2s}
.rules-panel[open]>summary h2::after{transform:rotate(45deg)}
.rules-text{margin-top:16px;padding-top:16px;border-top:1px solid var(--line-soft);white-space:pre-line;color:var(--text-2);line-height:1.7;font-size:14px}
.entry-blocked{margin:12px 0 0;padding:12px 14px;border-left:2px solid var(--amber);border-radius:0 10px 10px 0;background:#ffb45414;font-size:13px;color:#ffd196}
.entry-blocked a{color:var(--text)}

/* --- Mon espace ------------------------------------------------------------ */
.profile-banner{display:flex;align-items:center;gap:22px;margin-bottom:20px;padding:26px;background:
  radial-gradient(500px 200px at 0 0,var(--accent-soft),transparent 70%),var(--surface);border:1px solid var(--line);border-radius:var(--r-xl)}
.profile-avatar{display:grid;place-items:center;width:76px;height:76px;flex:none;border-radius:22px;background:var(--accent);color:var(--accent-ink);
  font:800 italic 32px/1 var(--display);transform:rotate(-4deg)}
.profile-banner h2{margin:10px 0 2px;font-size:30px}
.profile-banner p{margin:0}
.profile-status{margin-left:auto;display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:99px;background:var(--surface-2);
  border:1px solid var(--line);font-size:12px;font-weight:600;color:var(--text-2);white-space:nowrap}
.account-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:20px;align-items:start}
.profile-editor .row{margin-top:18px}
#profile-feedback{margin:10px 0 0;color:var(--green);font-size:13px}
#profile-feedback:empty{display:none}
.epic-panel{overflow:hidden}
.epic-monogram{position:absolute;top:22px;right:22px;display:grid;place-items:center;width:46px;height:54px;padding-top:2px;
  background:#f3f4f6;color:#111;border-radius:6px 6px 14px 14px;font:900 9.5px/1.05 var(--font);letter-spacing:.04em;text-align:center}
.epic-button{background:#f3f4f6;border-color:transparent;color:#0b0b0c}
.epic-button:not(:disabled):hover{background:#fff;border-color:transparent}
.identity-note{margin-top:22px;padding:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px}
.identity-note p{margin:4px 0 12px;font-size:13px}
.account-session{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding:18px 22px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.account-session p{margin:2px 0 0;font-size:13px;color:var(--muted)}
.discord-account{margin-top:20px}
#link-discord:not(:disabled){background:#5865f2;border-color:transparent;color:#fff}
#link-discord:not(:disabled):hover{background:#6873f4}

/* --- Fenêtres -------------------------------------------------------------- */
dialog{width:min(460px,calc(100% - 28px));max-height:calc(100vh - 40px);padding:28px;overflow:auto;background:var(--surface);color:var(--text);
  border:1px solid var(--line-strong);border-radius:var(--r-xl);box-shadow:0 40px 120px -30px #000}
dialog[open]{animation:dialog .3s cubic-bezier(.2,1.2,.4,1)}
@keyframes dialog{from{opacity:0;transform:translateY(12px) scale(.98)}}
dialog::backdrop{background:#030304b8;backdrop-filter:blur(6px)}
.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}
.dialog-head h2{margin:10px 0 0;font-size:25px}
.dialog-head h2:first-child{margin-top:4px}
dialog label{margin-top:14px}
dialog form>button.full,dialog>button.full{margin-top:18px}
dialog .link-button.full{margin-top:10px;text-align:center;justify-content:center}
#epic-login{margin-top:6px;min-height:46px}
.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0 4px;font-size:10.5px;font-weight:650;letter-spacing:.1em;color:var(--muted)}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--line)}
.password-field{display:flex;gap:8px;margin-top:7px}
.password-field input{margin:0}
.password-field button{flex:none;min-height:0;padding:0 12px;font-size:12px}
label>small{display:block;margin-top:6px;font-weight:400;color:var(--muted)}
.identity-card{margin:4px 0 10px;padding:16px 18px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px}
.identity-main{display:flex;align-items:center;gap:2px;font-size:19px}
.identity-main strong{font-weight:700;letter-spacing:-.01em}
.identity-club{margin-top:4px;font-size:11px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.dialog-sep{display:flex;align-items:center;gap:12px;margin:20px 0 4px;color:var(--muted);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.dialog-sep::before,.dialog-sep::after{content:'';flex:1;height:1px;background:var(--line)}
.join-row{display:flex;gap:8px;margin-top:8px}
.join-row input{flex:1;font:600 15px var(--mono);letter-spacing:.22em;text-transform:uppercase;text-align:center}
.join-row button{flex:none}
#secret-value{font:600 15px var(--mono);letter-spacing:.06em}

/* --- Carte des spawns ------------------------------------------------------ */
.map-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}
.map-toolbar label{font-size:13px;color:var(--text-2)}
.map-toolbar select{width:auto;min-width:220px;max-width:340px}
.map-toolbar .tag{margin-left:auto}
.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.map-viewport{position:relative;aspect-ratio:1;overflow:hidden;border-radius:var(--r-xl);background:#0c3a60;border:1px solid var(--line);
  touch-action:none;isolation:isolate}
.map-stage{position:absolute;inset:0;transform-origin:0 0;background:#0c3a60 url(/assets/fortnite-map.jpg) center/100% 100%;cursor:crosshair}
.map-viewport.dragging .map-stage{cursor:grabbing}
.zoom-controls{position:absolute;left:12px;top:12px;z-index:30;display:flex;flex-wrap:wrap;gap:6px;max-width:calc(100% - 24px)}
.zoom-controls button,.zoom-value,.map-hint{background:#0b0c0fcc;border:1px solid #ffffff1c;color:#fff;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.zoom-controls button{min-height:36px;padding:6px 12px;font-size:12.5px;border-radius:9px}
.zoom-controls button:not(:disabled):hover{background:#1c1f24e6;border-color:#ffffff33}
#zoom-in,#zoom-out{width:36px;padding:0;font-size:17px}
.zoom-value{position:absolute;right:12px;bottom:12px;z-index:30;padding:5px 9px;border-radius:8px;font:600 11.5px var(--mono);pointer-events:none}
.map-hint{position:absolute;left:12px;bottom:12px;z-index:30;max-width:calc(100% - 100px);padding:7px 11px;border-radius:9px;font-size:12.5px;pointer-events:none}
.map-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:12px 2px}
.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:7px}
.legend i{width:12px;height:12px;border-radius:3px;background:#4aa8f04d;border:1.5px solid #bfe8ff}
.legend i.red{background:#ff2d4a52;border-color:#ff8a7a}
.legend i.purple{background:#ffffff26;border-color:#fff}
.map-sidebar{position:sticky;top:86px}
.map-sidebar h2{margin:12px 0 6px;font-size:26px}
.map-sidebar>button{width:100%;margin-top:8px}
.spawn-status{display:inline-flex;margin:4px 0 14px;padding:5px 10px;border-radius:99px;background:#4ea8ff1c;color:#9ccfff;font-size:10.5px;font-weight:650;letter-spacing:.07em}
.spawn-status.contested{background:var(--red-soft);color:#ff8a95}
.members{margin:10px 0 14px}
.members .member{padding:11px 0;border-top:1px solid var(--line-soft)}
.members .member small{display:block;margin-top:4px;color:var(--muted);font-size:11.5px}
.map-selection-tools{position:absolute;z-index:28;pointer-events:none}
.map-trash{width:40px;height:40px;min-height:40px;padding:9px;pointer-events:auto;background:#0b0c0fe0;color:#ff8a95;border:1px solid #ff4d5e70;
  border-radius:11px;box-shadow:0 8px 24px #0008;backdrop-filter:blur(8px);touch-action:manipulation}
.map-trash:not(:disabled):hover{background:#2a1015;border-color:var(--red)}
.map-trash svg{width:100%;height:100%}
.roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.roster-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:0;padding:14px 16px;text-align:left;background:var(--surface);border-radius:12px}
.roster-card strong{font-size:14px;font-weight:600}
.roster-card small{font-size:12px;color:var(--muted)}
.roster-card small.contested{color:#ff8a95}
.roster-card.active{border-color:var(--accent-line);box-shadow:inset 0 0 0 1px var(--accent-line)}
.map-expanded .map-layout{grid-template-columns:1fr}
.map-expanded .map-viewport{max-width:1100px;margin:0 auto}
.map-expanded .map-sidebar{position:static}

#map-shapes{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
#map-shapes>*{pointer-events:auto}
.zone-shape{fill:#4aa8f04d;stroke:#bfe8ff;stroke-width:2.5;stroke-linejoin:round;cursor:pointer;paint-order:stroke;transition:fill .15s,stroke .15s}
.zone-shape:hover{fill:#4aa8f070}
.zone-shape.selected{fill:#4aa8f082;stroke:#fff;stroke-width:3.5}
/* Deux zones qui se croisent gardent leur fond : seule la surface commune rougit. */
.zone-shape.crossing{stroke:#ffb3a6}
.zone-shape.crossing.selected{stroke:#ffb9ae}
/* Plusieurs équipes sur la même zone : toute la zone passe en rouge. */
.zone-shape.shared{fill:#ff2d4a52;stroke:#ff8a7a;stroke-width:3}
.zone-shape.shared:hover{fill:#ff2d4a70}
.zone-shape.shared.selected{fill:#ff2d4a85;stroke:#fff1ee;stroke-width:3.5}
.overlap-area{fill:#ff2d4a;fill-opacity:.62;stroke:#fff1ee;stroke-width:2;stroke-dasharray:5 3;pointer-events:none;vector-effect:non-scaling-stroke}
.draft-shape{fill:#b8ffd92e;stroke:#7ee0a8;stroke-width:2.5;stroke-linejoin:round;stroke-dasharray:6 4;cursor:move}
polyline.draft-shape,.draft-line{fill:none}
.draft-handle{fill:#0d1120;stroke:#7ee0a8;stroke-width:2;cursor:grab}
.draft-handle:hover{fill:#7ee0a8}
.draft-handle.first{fill:#7ee0a8;stroke:#eaf7ff;stroke-width:2.5;r:1.6;cursor:pointer}
/* Libellés : une seule contre-échelle, portée par .zone (voir labels.js). */
#map-zones .zone{position:absolute;transform:translate(-50%,-50%) scale(var(--label-scale,1));transform-origin:center;display:flex;flex-direction:column;
  align-items:center;gap:1px;min-height:0;padding:2px 4px;background:none;border:0;border-radius:0;cursor:pointer;pointer-events:auto;
  text-shadow:0 1px 3px #050a14,0 0 8px #050a14cc;color:#f3f8ff;font-weight:700;line-height:1.2}
#map-zones .zone:not(:disabled):hover{background:none}
#map-zones .zone .zone-label{display:flex;flex-direction:column;align-items:center;gap:1px}
#map-zones .zone .duo-line{white-space:nowrap;transform-origin:center;font-family:var(--display);font-weight:800;line-height:1.2}
#map-zones .zone .duo-line+.duo-line{margin-top:1px}
#map-zones .zone.shared{color:#fff}
#map-zones .zone.crossing{color:#ffd9d2}
#map-zones .zone.collapsed .zone-label{display:none}
#map-zones .zone.collapsed::after{content:'';width:5px;height:5px;border-radius:50%;background:#eaf6ff;box-shadow:0 0 0 2px #050a14b3}
#map-zones .zone.crossing.collapsed::after,#map-zones .zone.shared.collapsed::after{background:#ff8a7a}
.draft-facts{display:flex;gap:18px;margin:12px 0;font-size:13px;color:var(--muted)}
.draft-facts b{color:var(--text);font-variant-numeric:tabular-nums}
.draft-warning{margin:10px 0;padding:10px 12px;border-left:2px solid #ff8a7a;border-radius:0 8px 8px 0;background:var(--red-soft);font-size:13px;color:var(--text)}

/* --- Page POV (à venir) ---------------------------------------------------- */
.hero{position:relative;overflow:hidden;margin-bottom:20px;padding:56px 40px;border:1px solid var(--line);border-radius:var(--r-xl);
  background:radial-gradient(600px 300px at 90% 10%,var(--accent-soft),transparent 70%),var(--surface)}
.hero::after{content:'';position:absolute;right:40px;top:50%;width:150px;height:180px;transform:translateY(-50%) rotate(-8deg);
  background:url(/assets/surge.svg) center/contain no-repeat;opacity:.08}
.hero h1{margin:16px 0 10px;font:800 italic clamp(40px,6vw,76px)/.92 var(--display);letter-spacing:0;text-transform:uppercase}
.hero p{max-width:520px}

/* --- Identité propre à chaque tournoi (éditeur) ------------------------------
   L'organisateur choisit son accent, sa forme de bouton et sa bannière. Le reste
   du site ne bouge pas : la cohérence SURGE est gardée autour. */
/* Les teintes dérivées de l'accent sont recalculées ici : une variable
   composée à la racine garderait sinon la couleur SURGE. */
main[data-event-theme=true],#creator-preview{--accent:var(--event-accent);--accent-ink:var(--event-ink);--r-btn:var(--event-radius);
  --accent-soft:color-mix(in srgb,var(--accent) 13%,transparent);--accent-line:color-mix(in srgb,var(--accent) 38%,transparent)}
main[data-event-theme=true] .tournament-banner{background-color:var(--event-background);border-radius:max(var(--event-radius),14px)}
main[data-event-theme=true][data-pattern=orbit] .tournament-banner::after,#creator-preview[data-pattern=orbit] .preview-banner::after{
  background:repeating-radial-gradient(circle at 92% 70%,transparent 0 58px,#ffffff0a 59px 60px,transparent 61px 88px)}
main[data-event-theme=true][data-pattern=grid] .tournament-banner::after,#creator-preview[data-pattern=grid] .preview-banner::after{
  background-image:linear-gradient(#ffffff0a 1px,transparent 1px),linear-gradient(90deg,#ffffff0a 1px,transparent 1px);background-size:32px 32px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000);mask-image:linear-gradient(90deg,transparent,#000)}
/* « Compétition » : le titre de la bannière passe en condensé italique. */
main[data-event-theme=true][data-font=condensed] .tournament-identity h1,#creator-preview[data-font=condensed] .preview-banner h2{
  font-family:var(--display);font-style:italic;font-weight:800;text-transform:uppercase;letter-spacing:.005em;line-height:.92}
main[data-event-theme=true][data-font=condensed] .tournament-identity h1{font-size:clamp(40px,5.2vw,68px)}
#creator-preview[data-font=condensed] .preview-banner h2{font-size:38px}
main[data-event-theme=true][data-height=compact] .tournament-banner{min-height:150px;padding-top:22px;padding-bottom:22px}
main[data-event-theme=true][data-height=compact] .event-logo{width:48px;height:48px;margin-bottom:12px}
main[data-event-theme=true][data-height=hero] .tournament-banner{min-height:330px}
#creator-preview[data-height=compact] .preview-banner{min-height:160px}
#creator-preview[data-height=hero] .preview-banner{min-height:320px}
main[data-event-theme=true][data-align=center] .tournament-banner{flex-direction:column;align-items:center;text-align:center}
main[data-event-theme=true][data-align=center] .event-logo{margin-left:auto;margin-right:auto}
main[data-event-theme=true][data-align=center] .tournament-identity p{margin-left:auto;margin-right:auto}
main[data-event-theme=true][data-align=center] .event-summary{flex-direction:row;align-items:center}
#creator-preview[data-align=center] .preview-banner{align-items:center;text-align:center}
main[data-event-theme=true][data-density=compact] .panel{padding:18px}
#creator-preview[data-density=compact] .preview-body{padding:14px}

/* --- Écrans moyens --------------------------------------------------------- */
@media (max-width:1100px){
  .creator-layout{grid-template-columns:1fr}
  .creator-preview{position:static;order:-1;max-width:460px;width:100%}
  .featured-arena{grid-template-columns:1fr}
  .featured-aside{display:grid;grid-template-columns:1fr 1fr;column-gap:28px;align-items:start}
  .featured-aside>.eyebrow,.featured-aside>h2,.featured-aside>p:first-of-type,#explore-events{grid-column:1}
  .featured-aside>.invite-separator,.featured-aside>.invite-help,#join-invitation{grid-column:2}
  .featured-aside>.invite-separator{grid-row:1;margin-top:0}
  .featured-aside>.invite-help{grid-row:2/4}
  #join-invitation{grid-row:4}
}
@media (max-width:960px){
  :root{--gutter:20px}
  .overview-grid,.org-grid,.account-grid,.stats-grid,.replay-grid,.engine-grid,.arena-guide{grid-template-columns:1fr}
  .arena-guide{gap:14px}
  .map-layout{grid-template-columns:1fr}
  .map-sidebar{position:static}
  .ranking-layout,.ranking-layout.closed{grid-template-columns:1fr}
  .ranking-layout:not(.closed) .player-drawer{position:fixed;z-index:90;right:16px;bottom:16px;top:auto;width:min(380px,calc(100vw - 32px));
    max-height:70vh;overflow:auto;box-shadow:var(--shadow);border-color:var(--line-strong)}
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .arena-summary{grid-template-columns:repeat(2,1fr)}
  .arena-summary>div:nth-child(3){border-left:0}
  .arena-summary>div:nth-child(n+3){border-top:1px solid var(--line-soft)}
  .edition{display:none}
}
/* --- Mobile ---------------------------------------------------------------- */
@media (max-width:640px){
  :root{--gutter:16px}
  body{font-size:14px}
  #app>header{height:58px;gap:12px}
  .brand-word{font-size:24px}
  .brand>img{width:22px;height:27px}
  .header-explore{display:none}
  .header-user small{display:none}
  main{padding-top:20px}
  .mobile-break{display:block}
  .pagehead{flex-direction:column;align-items:flex-start;gap:14px}
  .pagehead>select,.pagehead>.button{width:100%}
  .headline-count{display:none}
  .featured-aside{display:flex}
  .featured-poster{height:150px}
  #featured-event{padding:22px 20px}
  .countdown-strip{flex-direction:column;align-items:stretch;padding:18px 20px;gap:14px}
  .countdown-clock>div:not(.countdown-idle){flex:1;width:auto}
  .countdown-idle{align-items:flex-start;text-align:left}
  .events{grid-template-columns:1fr}
  .filters select{flex:1 1 45%}
  .filters .muted{width:100%;margin:0}
  .tournament-banner{flex-direction:column;align-items:flex-start;min-height:0;padding:22px}
  .event-summary{flex-direction:row;align-items:center;justify-content:space-between;width:100%}
  .event-summary>div{text-align:left}
  .panel{padding:20px}
  .preparation-grid{grid-template-columns:1fr}
  .replay-window-fields{grid-template-columns:1fr}
  .choice-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .upload-grid{grid-template-columns:1fr 1fr}
  .upload-tile.banner{grid-column:1/-1;order:-1}
  .palette-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .color-row,.field-row,.field-grid.three,.points-editor{grid-template-columns:1fr}
  .reward{grid-template-columns:40px minmax(0,1fr) 34px}
  .reward>input[data-reward-field=label]{grid-column:1/-1}
  .creator-step{padding:20px 18px 22px}
  .creator-steps{top:58px}
  .creator-preview{order:1;max-width:none}
  .creator-status{flex:0 0 auto}
  .creator-status a,.creator-status .ok{font-size:0;gap:0}
  .creator-submit .row{gap:8px}
  .creator-submit .primary{flex:1;padding:10px 14px}
  .step-index{font-size:34px}
  .profile-banner{flex-wrap:wrap;padding:20px;gap:16px}
  .profile-avatar{width:60px;height:60px;font-size:25px;border-radius:18px}
  .profile-status{margin-left:0}
  .account-session{flex-direction:column;align-items:flex-start}
  .map-toolbar select{flex:1;min-width:0}
  .map-toolbar .tag{margin-left:0}
  .zoom-controls button{min-height:34px;padding:5px 10px;font-size:12px}
  #zoom-in,#zoom-out{width:34px}
  .map-hint{font-size:11.5px}
  .roster{grid-template-columns:1fr 1fr}
  dialog{padding:22px;border-radius:18px}
  input,select,textarea{font-size:16px}
  .hero{padding:36px 24px}
  .hero::after{display:none}
  td,th{padding-left:12px;padding-right:12px}
}
@media (max-width:420px){
  .edition,.header-user{display:none}
  #account-action{padding:4px}
  .metrics{gap:8px}
  .metric{padding:14px}
  .metric strong{font-size:32px}
  .arena-summary strong{font-size:30px}
  .event-actions{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
body:has([data-view="rank"]:not([hidden])){overflow-anchor:none}

/* --- Ajustements d'ensemble ------------------------------------------------ */
#org-content>.panel+.metrics{margin-top:20px}
.field-hint+label,.muted+label{margin-top:16px}
.section-heading>button{white-space:nowrap;flex:none}
@media (max-width:640px){
  .map-toolbar select{flex:1 1 auto;min-width:0;width:auto}
  .map-toolbar #team-select-label{width:100%}
  .map-toolbar #add-team{flex:1 1 100%}
  main:not(:has([data-view="overview"]:not([hidden]))) .tournament-identity .eyebrow{display:none}
  main:not(:has([data-view="overview"]:not([hidden]))) .tournament-banner{flex-direction:row;align-items:center}
  main:not(:has([data-view="overview"]:not([hidden]))) .event-summary{width:auto}
  main:not(:has([data-view="overview"]:not([hidden]))) .event-summary strong{font-size:22px}
  main:not(:has([data-view="overview"]:not([hidden]))) .tournament-identity h1{font-size:22px;margin:0}
  main:not(:has([data-view="overview"]:not([hidden]))) .tournament-banner{padding:16px}
  .section-heading{align-items:flex-start}
}
/* Le mois reste en minuscule en français : seule la première lettre monte. */
.countdown-caption strong{text-transform:none}
.countdown-caption strong::first-letter{text-transform:uppercase}
.arena-summary span:last-child{font-size:11px;font-weight:600;letter-spacing:.08em}
/* Grande bannière sur l'aperçu, bandeau compact sur les autres onglets :
   on voit l'identité du tournoi en arrivant, puis le contenu passe devant. */
main:not(:has([data-view="overview"]:not([hidden]))) .tournament-banner{min-height:0;padding:20px 24px;align-items:center}
main:not(:has([data-view="overview"]:not([hidden]))) .tournament-identity{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:16px;align-items:center}
main:not(:has([data-view="overview"]:not([hidden]))) .tournament-identity>*{grid-column:2}
main:not(:has([data-view="overview"]:not([hidden]))) .event-logo{grid-column:1;grid-row:1/span 3;width:44px;height:44px;margin:0;border-radius:11px}
main:not(:has([data-view="overview"]:not([hidden]))) .event-logo span{font-size:18px}
main:not(:has([data-view="overview"]:not([hidden]))) .tournament-identity h1{font-size:clamp(24px,2.4vw,32px);margin:6px 0 0}
main:not(:has([data-view="overview"]:not([hidden]))) .tournament-identity p{display:none}
main:not(:has([data-view="overview"]:not([hidden]))) .event-summary strong{font-size:28px}
main:not(:has([data-view="overview"]:not([hidden]))) .event-summary>.tag{display:none}
main:not(:has([data-view="overview"]:not([hidden]))) .compact-countdown{display:none}

/* --- Parties, hosts et clés -------------------------------------------------- */
.key-display{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;min-height:0;margin:12px 0 4px;padding:16px;
  background:var(--field);border:1px dashed var(--accent-line);border-radius:14px;font:700 clamp(24px,4vw,34px)/1 var(--mono);letter-spacing:.14em;color:var(--accent)}
.key-display small{font:600 11px var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.key-display:not(:disabled):hover{background:var(--accent-soft);border-color:var(--accent)}
.lobby-banner{margin-bottom:20px;border-color:var(--accent-line);background:linear-gradient(135deg,var(--accent-soft),transparent 55%),var(--surface)}
.lobby-status{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:99px;background:var(--surface-3);color:var(--text-2);font-size:11px;font-weight:650;white-space:nowrap}
.lobby-status.live{background:var(--red-soft);color:#ff8a95}
.lobby-status.live::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--red);animation:pulse 1.6s ease-out infinite}
.lobby-status.done{background:var(--green-soft);color:var(--green)}
.host-station{margin-bottom:20px;border-color:var(--accent-line)}
.host-steps{margin:14px 0 18px;padding-left:20px;color:var(--text-2);font-size:13.5px;line-height:1.7}
.host-steps strong{color:var(--text)}
.duty-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.duty{padding:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:14px}
.duty header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.duty .row{margin-top:12px}
.duty .row button{flex:1}
.lobby-admin{margin-top:20px}
.admin-block{margin-top:22px;padding-top:20px;border-top:1px solid var(--line-soft)}
.admin-block h3{margin:0 0 10px}
.admin-block>.row{margin-top:12px}
.block-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.block-head h3{margin:0}
.block-head select{width:auto;min-width:150px}
.lobby-chips{display:flex;flex-wrap:wrap;gap:8px}
.lobby-chips span{position:relative;display:flex;flex-direction:column;gap:2px;min-width:130px;padding:10px 14px 14px;overflow:hidden;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;font-size:12px;color:var(--muted)}
.lobby-chips b{font-size:13.5px;color:var(--text)}
.lobby-chips i{position:absolute;left:0;bottom:0;height:3px;width:var(--fill);background:var(--accent)}
.move-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.move-row select{flex:1 1 180px;width:auto}
.host-list{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.host-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px}
.host-row>div{flex:1;min-width:0}
.host-row strong{display:block;font:600 14px var(--mono)}
.host-row small{display:block;margin-top:2px;font-size:12px;color:var(--muted)}
.host-row .warn{color:var(--amber)}
.host-avatar{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:10px;background:var(--accent);color:var(--accent-ink);font:800 italic 17px var(--display)}
.host-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:8px}
.board{display:flex;flex-direction:column;gap:8px}
.board-row{display:grid;grid-template-columns:40px minmax(140px,1.2fr) auto auto auto minmax(0,1fr);align-items:center;gap:12px;padding:10px 12px;
  background:var(--surface-2);border:1px solid var(--line);border-radius:12px}
.board-lobby{font:800 italic 22px var(--display);color:var(--accent)}
.board-host select{padding:7px 30px 7px 10px;font-size:13px}
.board-host small{display:block;margin-top:4px;font-size:11.5px;color:var(--muted)}
.key-chip{min-height:34px;padding:6px 12px;font:700 14px var(--mono);letter-spacing:.1em;background:var(--field);color:var(--text)}
.board-served{font-size:12px;color:var(--muted);white-space:nowrap}
.board-actions{display:flex;justify-content:flex-end;gap:6px}
.board-actions button{min-height:34px;padding:6px 12px;font-size:12.5px}
.board-empty{padding:20px;text-align:center;background:var(--field);border:1px dashed var(--line-strong);border-radius:12px}
.board-empty p{margin:0 auto 14px;max-width:520px}
.inline-label{display:inline-flex;align-items:center;gap:8px;margin:0}
.inline-label select{width:auto;margin:0}
.lobby-tag{display:inline-flex;align-items:center;height:18px;margin-right:6px;padding:0 6px;border-radius:5px;background:var(--surface-3);color:var(--text-2);font:700 10.5px var(--mono)}
#lobby-filter{width:auto;min-width:130px}
@media (max-width:960px){
  .board-row{grid-template-columns:36px minmax(0,1fr) auto;row-gap:10px}
  .board-row .lobby-status,.board-row .board-served{grid-column:2}
  .board-actions{grid-column:1/-1;justify-content:flex-start}
  .host-form{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){.host-form{grid-template-columns:1fr}}

/* --- Bot SURGE : remise de la clé dans Fortnite --------------------------------- */

/* --- conformité Epic et pages légales --- */
.consent{align-items:flex-start!important;line-height:1.5}
.consent input{margin-top:2px}
.consent a,.event-legal a,.legal-section a{color:var(--accent)}
.data-notice,.legal-en{font-size:11px;letter-spacing:.03em;line-height:1.55;color:var(--text-2)}
.data-notice{margin:0 0 4px}
.rules-common{margin-top:16px;padding-top:16px;border-top:1px solid var(--line-soft);color:var(--text-2);font-size:14px;line-height:1.65}
.rules-common h3{margin:0 0 8px;font-size:15px;color:var(--text)}
.rules-common ul{margin:0 0 14px;padding-left:18px}
.event-legal{margin-top:20px;padding:16px 18px;border:1px solid var(--line-soft);border-radius:var(--r-lg);font-size:12px;line-height:1.55}
.event-legal p{margin:0 0 6px}
.event-legal p:last-child{margin:0}
.legal-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.legal-nav a{padding:8px 14px;border:1px solid var(--line);border-radius:999px;color:var(--text-2);text-decoration:none;font-size:13px}
.legal-nav a:hover{border-color:var(--accent-line);color:var(--text)}
.legal-section{margin-bottom:16px;color:var(--text-2);font-size:14px;line-height:1.7;scroll-margin-top:90px}
.legal-section h2{margin:0 0 12px;color:var(--text)}
.legal-section h3{margin:18px 0 6px;font-size:15px;color:var(--text)}
.legal-section ul{padding-left:18px}
.legal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 24px;margin:0 0 14px}
.legal-grid dt{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.legal-grid dd{margin:2px 0 0;color:var(--text)}
.legal-todo{color:#ffd196;font-style:italic}
.license-list{margin:4px 0 16px;padding-left:18px;color:var(--text-2);line-height:1.65;font-size:14px}
.license-access{padding:16px;border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--r-md,12px);margin-bottom:6px}
.license-access p{margin:6px 0 12px;color:var(--text-2);font-size:13.5px}
