:root{--build:"2026-10-09-d"}
/* Crownless — thème sombre givré */
:root{
  color-scheme: dark;
  --bg:#0a0f17; --bg-2:#0d1520; --panel:#111a26; --panel-2:#172334; --line:#22334a; --line-2:#2d4260;
  --text:#e3ebf4; --muted:#8797ad; --faint:#5d6d84;
  --frost:#9bd6ff; --frost-deep:#4a92d4; --frost-soft:rgba(155,214,255,.10);
  --gold:#c9a45a; --gold-soft:rgba(201,164,90,.12);
  --ok:#72d49b; --warn:#e8bf5a; --bad:#e46f6f;
  --war:#C69B6D; --pal:#F48CBA; --hunt:#AAD372; --rog:#FFF468; --pri:#FFFFFF;
  --mage:#3FC7EB; --lock:#8788EE; --dru:#FF7C0A; --sham:#2F8CFF;
  --display:"Cinzel",Georgia,"Times New Roman",serif;
  --body:"Alegreya Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 64px);background:var(--bg)}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-size:1.06rem;line-height:1.55;
  background-image:radial-gradient(1200px 500px at 80% -10%,rgba(74,146,212,.10),transparent 60%)}
img{max-width:100%;display:block}
a{color:var(--frost)}
.wrap{max-width:1140px;margin:0 auto;padding:0 1.25rem}
:focus-visible{outline:2px solid var(--frost);outline-offset:2px;border-radius:4px}

/* ---------- Barre du haut ---------- */
.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(10,15,23,.82);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.topin{display:flex;align-items:center;gap:1rem;min-height:60px}
.brand{font-family:var(--display);font-weight:900;letter-spacing:.22em;font-size:1rem;color:var(--text);text-decoration:none;white-space:nowrap}
.tabs{display:flex;gap:.1rem;overflow-x:auto;flex:1;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{appearance:none;background:none;border:0;color:var(--muted);font:inherit;font-weight:500;padding:1.1rem .9rem;cursor:pointer;
  border-bottom:2px solid transparent;white-space:nowrap}
.tab:hover{color:var(--text)}
.tab[aria-selected="true"]{color:var(--frost);border-bottom-color:var(--frost)}
.account{display:flex;align-items:center;gap:.5rem;white-space:nowrap;font-size:.92rem;color:var(--muted)}
@media (max-width:720px){
  .acct-name{display:none}
  .topin{flex-wrap:wrap;gap:0 1rem;padding-top:.55rem}
  .tabs{order:3;flex-basis:100%}
  .tab{padding:.75rem .7rem}
  .account{margin-left:auto}
  html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 100px)}
}

/* ---------- Hero (onglet Organisation uniquement) ---------- */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);min-height:min(78vh,620px);display:flex;align-items:center}
.hero[hidden]{display:none}
.hero-bg{position:absolute;top:0;bottom:0;right:0;width:min(62%,900px);background:url('crownless.jpg') center 60% / cover no-repeat;opacity:.55;filter:blur(1px) saturate(.95);
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.5) 28%,#000 60%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.5) 28%,#000 60%)}
@media (max-width:720px){.hero-bg{width:100%;opacity:.3;background-position:center 40%}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,15,23,.2) 0%,transparent 40%,var(--bg) 100%);pointer-events:none}
#snow{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.hero-in{position:relative;z-index:2;padding-top:4rem;padding-bottom:4rem;width:100%}
.crown{width:74px;height:auto;margin-bottom:.9rem}
.wordmark{font-family:var(--display);font-weight:900;font-size:clamp(2.3rem,10vw,6.6rem);line-height:.95;letter-spacing:.12em;margin:0;
  color:#f2f8ff;text-shadow:0 0 28px rgba(155,214,255,.55),0 0 2px rgba(155,214,255,.9)}
.motto{font-family:var(--display);color:var(--gold);font-size:clamp(1rem,2.2vw,1.3rem);letter-spacing:.06em;margin:1rem 0 0}
.pitch{color:#c3cfdd;max-width:46ch;margin:1.1rem 0 0;font-size:1.12rem}
.facts{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.4rem}
.fact{border:1px solid var(--line-2);background:rgba(17,26,38,.7);border-radius:999px;padding:.3rem .85rem;font-size:.93rem;color:var(--muted)}
.fact strong{color:var(--text)}
.countdowns{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.2rem}
.cd{background:rgba(13,21,32,.78);border:1px solid var(--line-2);border-radius:12px;padding:1rem 1.2rem;min-width:250px;backdrop-filter:blur(6px)}
.cd-label{font-size:.92rem;color:var(--muted)}
.cd-date{color:var(--text);font-weight:700}
.cd-time{display:flex;gap:1rem;margin-top:.5rem}
.cd-time div{text-align:center;min-width:3ch}
.cd-time b{display:block;font-family:var(--display);font-size:2rem;line-height:1;color:var(--frost);font-variant-numeric:tabular-nums}
.cd-time span{font-size:.78rem;color:var(--faint)}
.cd.gold .cd-time b{color:var(--gold)}
.cd-done{font-family:var(--display);color:var(--frost);font-size:1.4rem;margin-top:.4rem}

/* ---------- Structure générale ---------- */
main{padding:2.5rem 0 4rem}
section[role="tabpanel"][hidden]{display:none}
.block{margin-bottom:3rem}
.block-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.1rem;
  border-bottom:1px solid var(--line);padding-bottom:.6rem}
h2{font-family:var(--display);font-weight:700;font-size:clamp(1.45rem,3vw,1.9rem);margin:0;letter-spacing:.02em}
h3{font-size:1.12rem;margin:0 0 .5rem;font-weight:700}
.aside{color:var(--muted);font-size:.95rem}
.page-title{margin-bottom:.4rem}
.lead{color:var(--muted);margin:0 0 2rem;max-width:68ch}
.grid{display:grid;gap:1rem}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1.3rem 1.4rem}
.panel p{margin:.2rem 0 0;color:#b9c6d6}
.muted{color:var(--muted)}

/* Philosophie */
.principle{position:relative;padding-top:1.5rem}
.principle .glyph{font-family:var(--display);font-size:1.6rem;color:var(--frost);line-height:1;margin-bottom:.7rem;display:block}
.quote{border-left:3px solid var(--gold);padding:.2rem 0 .2rem 1.1rem;margin:0 0 1.2rem;font-size:1.15rem;color:#d4dde8;max-width:70ch}

/* Décisions actées */
.decision .big{font-family:var(--display);font-weight:900;font-size:clamp(2rem,4vw,2.6rem);line-height:1;color:var(--frost);margin-bottom:.8rem;letter-spacing:.04em}
.decision.alliance .big{color:#6aa8ff}
.decision ul{margin:.4rem 0 0;padding-left:1.1rem;color:#b9c6d6}
.decision li{margin:.2rem 0}
.tag{display:inline-block;font-size:.8rem;padding:.1rem .55rem;border-radius:999px;border:1px solid var(--line-2);color:var(--muted)}
.tag.ok{border-color:rgba(114,212,155,.45);color:var(--ok)}

/* Rythme */
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin-top:1rem}
.day{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:.7rem .4rem .6rem;text-align:center}
.day b{display:block;font-size:.95rem}
.day .meter{height:48px;display:flex;align-items:flex-end;justify-content:center;margin:.5rem 0 .4rem}
.day .meter i{display:block;width:14px;border-radius:4px 4px 0 0;background:var(--c)}
.day small{display:block;font-size:.78rem;color:var(--muted);line-height:1.2}
.day.top{border-color:var(--frost);background:linear-gradient(180deg,var(--frost-soft),var(--panel-2))}
.day.no{opacity:.55}
@media (max-width:520px){.wordmark{letter-spacing:.06em}.cd{min-width:0;flex:1 1 100%}}
@media (max-width:620px){.week{grid-template-columns:repeat(4,1fr)}}
.kv{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1.2rem;margin:0}
.kv dt{color:var(--muted)}
.kv dd{margin:0}

/* Étapes */
.stages{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1rem}
.stage .when{font-family:var(--display);color:var(--gold);font-size:1.05rem;margin-bottom:.3rem}

/* Référents */
.people{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.person{display:flex;align-items:center;gap:.6rem;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:.5rem .8rem}
.person .dot{width:10px;height:10px;border-radius:50%;background:var(--c)}
.person b{color:var(--c)}
.person span{color:var(--muted);font-size:.9rem}

/* ---------- Classes ---------- */
.roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:1rem;margin-bottom:1.5rem}
.role .n{font-family:var(--display);font-size:2.4rem;line-height:1.1}
.role .n small{font-size:1rem;color:var(--muted);font-family:var(--body)}
.comp{display:flex;height:12px;border-radius:6px;overflow:hidden;margin:.2rem 0 .6rem;background:var(--panel-2)}
.comp div{height:100%}
.legend{display:flex;flex-wrap:wrap;gap:.3rem 1rem;font-size:.9rem;color:var(--muted);margin-bottom:1.6rem}
.legend span::before{content:"";display:inline-block;width:.7em;height:.7em;border-radius:2px;background:var(--c);margin-right:.35em;vertical-align:.02em}
.classgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:1rem}
.cls{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--c);border-radius:12px;padding:1rem 1.1rem}
.cls-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}
.cls-head h3{color:var(--c);margin:0}
.cls-head .cnt{font-family:var(--display);font-size:1.4rem;color:var(--c)}
.cls ul{list-style:none;margin:0;padding:0}
.cls li{display:flex;justify-content:space-between;gap:.6rem;padding:.3rem 0;border-bottom:1px dashed var(--line);font-size:.97rem}
.cls li:last-child{border:0}
.cls li span{color:var(--muted);font-size:.9rem;text-align:right}
.cls li.prov{opacity:.55}
.cls li.prov b::after{content:" (provisoire)";font-weight:400;color:var(--muted);font-size:.85rem}
.cls .empty{color:var(--faint);font-size:.92rem}

/* ---------- Roster ---------- */
.toolbar{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem;align-items:center}
.toolbar input,.toolbar select{background:var(--panel);border:1px solid var(--line);color:var(--text);font:inherit;padding:.5rem .75rem;border-radius:8px}
.toolbar input{flex:1;min-width:190px}
.count{color:var(--muted);font-size:.95rem}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
table{width:100%;border-collapse:collapse;min-width:680px}
th,td{padding:.7rem .95rem;text-align:left;border-bottom:1px solid var(--line)}
th{font-size:.88rem;color:var(--muted);font-weight:500;background:var(--panel-2);cursor:pointer;user-select:none;white-space:nowrap}
th:hover{color:var(--text)}
th[aria-sort]::after{content:" ↓";color:var(--frost)}
th[aria-sort="ascending"]::after{content:" ↑"}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--panel-2)}
tr.prov td{opacity:.6}
.pname{font-weight:700;color:var(--c)}
.pill{display:inline-block;padding:.08rem .55rem;border-radius:999px;font-size:.84rem;border:1px solid var(--line-2);white-space:nowrap;color:var(--muted)}
.pill.ref{border-color:var(--gold);color:var(--gold)}
.pill.prov{border-style:dashed}
.lvl{display:flex;align-items:center;gap:.5rem;white-space:nowrap}
.lvl .bar{width:64px;margin:0}
.lvl .bar i{background:var(--c2)}
.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.bar{height:6px;background:var(--panel-2);border-radius:3px;margin-top:.6rem;overflow:hidden}
.bar i{display:block;height:100%;background:var(--frost)}
.sync{color:var(--faint);font-size:.9rem;margin:.8rem 0 0}
.hide-level .col-level{display:none}

/* ---------- Objectifs ---------- */
.ambition{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1rem}
.ambition .panel h3{font-family:var(--display);font-weight:600;color:var(--frost);font-size:1.15rem}
.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline::before{content:"";position:absolute;left:.55rem;top:.4rem;bottom:.4rem;width:2px;background:var(--line-2)}
.timeline li{position:relative;padding:0 0 1.3rem 2.2rem}
.timeline li:last-child{padding-bottom:0}
.timeline li::before{content:"";position:absolute;left:0;top:.35rem;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--bg);border:2px solid var(--line-2)}
.timeline li.done::before{background:var(--frost);border-color:var(--frost)}
.timeline li.next::before{border-color:var(--gold);box-shadow:0 0 0 4px var(--gold-soft)}
.timeline .d{font-family:var(--display);color:var(--gold);font-size:.98rem}
.timeline li.done .d{color:var(--muted)}
.timeline b{display:block}
.timeline span{color:var(--muted)}
.raids{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1rem}
.raid{position:relative;overflow:hidden}
.raid .size{position:absolute;right:1rem;top:.6rem;font-family:var(--display);font-weight:900;font-size:3.2rem;line-height:1;color:var(--frost);opacity:.13}
.raid h3{font-family:var(--display);font-size:1.3rem;margin-bottom:.1rem}
.raid .opens{color:var(--gold);font-size:.95rem}
.raid .prog{float:right;color:var(--muted);font-size:.95rem}
.bosses{list-style:none;padding:0;margin:.8rem 0 0}
.bosses li{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem 0;border-bottom:1px solid var(--line)}
.bosses li:last-child{border:0}
.st{font-size:.84rem;padding:.12rem .6rem;border-radius:999px;white-space:nowrap}
.st.done{background:rgba(114,212,155,.14);color:var(--ok)}
.st.wip{background:rgba(232,191,90,.14);color:var(--warn)}
.st.ready{background:var(--frost-soft);color:var(--frost)}
.st.todo{background:var(--panel-2);color:var(--muted)}
.bosses select{background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;font-size:.85rem;border-radius:999px;padding:.1rem .5rem}
.goals{list-style:none;margin:0;padding:0}
.goals li{display:flex;gap:.7rem;align-items:flex-start;padding:.4rem 0}
.goals input{margin-top:.35rem;accent-color:var(--frost);width:1rem;height:1rem;flex:none}
.goals input:disabled{opacity:1}
.goals input:checked + label{color:var(--muted);text-decoration:line-through}
.goals .del{margin-left:auto}
.add-goal{display:flex;gap:.5rem;margin-top:.7rem}
.add-goal input{flex:1;background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;padding:.35rem .6rem;border-radius:8px}

/* ---------- Boutons, messages, formulaire ---------- */
.btn{background:var(--panel);border:1px solid var(--line-2);color:var(--text);border-radius:8px;padding:.4rem .85rem;font:inherit;font-size:.92rem;cursor:pointer;text-decoration:none;display:inline-block}
.btn:hover{border-color:var(--frost)}
.btn.primary{background:var(--frost);border-color:var(--frost);color:#07111c;font-weight:700}
.btn.danger{color:var(--bad)}
.btn.small{padding:.22rem .6rem;font-size:.86rem}
.notice{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:8px;padding:.7rem 1rem;margin:0 0 1.5rem;color:#c3cfdd}
.notice[hidden]{display:none}
.editor-only{display:none!important}
body.editor .editor-only{display:revert!important}
body.editor #rosterBody tr{cursor:pointer}
dialog{background:var(--panel);color:var(--text);border:1px solid var(--line-2);border-radius:14px;padding:1.5rem;width:min(480px,92vw)}
dialog::backdrop{background:rgba(3,6,10,.7);backdrop-filter:blur(2px)}
dialog h3{font-family:var(--display);font-size:1.3rem;margin-bottom:1rem}
.form{display:grid;gap:.75rem}
.form label{display:grid;gap:.25rem;font-size:.9rem;color:var(--muted)}
.form input,.form select,.form textarea{background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;padding:.45rem .65rem;border-radius:8px}
.form input:disabled,.form select:disabled{opacity:.5}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.form .actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}
.form .actions .danger{margin-right:auto}
.hint{font-size:.86rem;color:var(--muted);margin:0}
.loading{color:var(--muted);padding:2rem 1rem}
footer{color:var(--faint);font-size:.9rem;text-align:center;padding:2rem 1rem 2.5rem;border-top:1px solid var(--line)}
footer p{margin:.2rem 0}
footer .signature{font-family:var(--display);color:var(--gold);font-size:1rem;letter-spacing:.04em;margin-top:.6rem}
@media (prefers-reduced-motion:no-preference){.tab,.btn{transition:color .15s,border-color .15s}}

/* ================= v3 : raids, présences, loot, craft, le site ================= */
.tabs .tab{padding-left:.75rem;padding-right:.75rem}
.hero-link{display:inline-block;margin-top:1.6rem;color:var(--frost);font-weight:500;text-decoration:none;border-bottom:1px solid rgba(155,214,255,.35)}
.hero-link:hover{border-bottom-color:var(--frost)}
.btn.ghost{background:transparent}
.icon-btn{background:none;border:0;color:var(--muted);cursor:pointer;font:inherit;padding:.1rem .35rem;border-radius:6px}
.icon-btn:hover{color:var(--frost);background:var(--panel-2)}
.empty-state{border:1px dashed var(--line-2);border-radius:12px;padding:2rem 1.5rem;text-align:center;color:var(--muted)}
.empty-state b{display:block;color:var(--text);font-size:1.1rem;margin-bottom:.3rem}
.row-actions{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.8rem}
.seg{display:inline-flex;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:3px;margin-bottom:1.3rem}
.seg button{background:none;border:0;color:var(--muted);font:inherit;padding:.4rem 1rem;border-radius:7px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--panel-2);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2)}

/* Raids */
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}
.chip-btn{background:var(--panel);border:1px solid var(--line);color:var(--muted);font:inherit;border-radius:999px;padding:.45rem 1rem;cursor:pointer}
.chip-btn b{color:var(--text);font-weight:700}
.chip-btn small{margin-left:.4rem;color:var(--faint)}
.chip-btn[aria-pressed="true"]{border-color:var(--frost);background:var(--frost-soft);color:var(--text)}
.raid-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.25rem;align-items:start}
@media (max-width:900px){.raid-layout{grid-template-columns:1fr}}
.boss{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-bottom:1rem;overflow:hidden}
.boss summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.8rem;padding:1rem 1.2rem}
.boss summary::-webkit-details-marker{display:none}
.boss summary h3{margin:0;font-family:var(--display);font-size:1.25rem;flex:1}
.boss summary::after{content:"";width:.55rem;height:.55rem;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);margin:0 .3rem .2rem}
.boss[open] summary::after{transform:rotate(-135deg);margin-bottom:-.2rem}
.boss-body{padding:0 1.2rem 1.2rem;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1.4rem}
@media (max-width:760px){.boss-body{grid-template-columns:1fr}}
.boss h4{font-size:.85rem;color:var(--muted);font-weight:500;margin:0 0 .5rem;letter-spacing:.02em}
.strat{margin:0;padding:0;list-style:none;counter-reset:s}
.strat li{position:relative;padding:0 0 .7rem 1.1rem;color:#c9d4e2}
.strat li::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--frost)}
.assign{width:100%;border-collapse:collapse;min-width:0}
.assign td{padding:.45rem .2rem;border-bottom:1px solid var(--line);vertical-align:top;font-size:.97rem;background:none;cursor:default}
.assign tr:last-child td{border:0}
.assign td:first-child{color:var(--muted);width:45%}
.assign tr:hover{background:none}
.pl{font-weight:700;color:var(--c,var(--text))}
.consos .group{margin-bottom:1rem}
.consos .group:last-child{margin-bottom:0}
.consos h4{font-size:.85rem;color:var(--muted);font-weight:500;margin:0 0 .4rem}
.conso{display:flex;gap:.6rem;align-items:flex-start;padding:.35rem 0;border-bottom:1px dashed var(--line)}
.conso:last-child{border:0}
.conso .req{flex:none;font-size:.72rem;padding:.08rem .45rem;border-radius:999px;margin-top:.2rem;border:1px solid var(--line-2);color:var(--muted)}
.conso .req.must{border-color:rgba(228,111,111,.5);color:var(--bad)}
.conso div{flex:1}
.conso small{display:block;color:var(--muted)}
.raid-note{border-left:3px solid var(--gold);padding:.1rem 0 .1rem .9rem;color:#c3cfdd;margin:0 0 1.2rem}

/* Présences */
.next-raid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1.25rem;margin-bottom:1.5rem}
@media (max-width:820px){.next-raid{grid-template-columns:1fr}}
.next-raid .when{font-family:var(--display);font-size:1.6rem;line-height:1.15}
.next-raid .what{color:var(--gold);margin:.2rem 0 .8rem}
.prep{white-space:pre-line;color:#c3cfdd;margin:0}
.tally{display:flex;gap:1.5rem;margin-top:1rem;flex-wrap:wrap}
.tally div b{display:block;font-family:var(--display);font-size:1.7rem;line-height:1}
.tally div span{font-size:.85rem;color:var(--muted)}
.checklist{list-style:none;margin:0;padding:0}
.checklist li{padding:.35rem 0 .35rem 1.6rem;position:relative;color:#c3cfdd}
.checklist li::before{content:"";position:absolute;left:0;top:.6rem;width:.9rem;height:.9rem;border:1.5px solid var(--line-2);border-radius:4px}
.legend-att{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;font-size:.9rem;color:var(--muted);margin:0 0 .8rem}
.legend-att span{display:inline-flex;align-items:center;gap:.4rem}
.att{font-style:normal;display:inline-grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:7px;font-size:.85rem;font-weight:700;border:1px solid var(--line);background:var(--panel-2);color:var(--faint)}
.att.present{background:rgba(114,212,155,.16);border-color:rgba(114,212,155,.45);color:var(--ok)}
.att.absent{background:rgba(228,111,111,.14);border-color:rgba(228,111,111,.45);color:var(--bad)}
.att.maybe{background:rgba(232,191,90,.13);border-color:rgba(232,191,90,.45);color:var(--warn)}
.att.late{background:rgba(155,214,255,.12);border-color:rgba(155,214,255,.4);color:var(--frost)}
.att.bench{background:rgba(135,136,238,.14);border-color:rgba(135,136,238,.45);color:var(--lock)}
.grid-att{min-width:0}
.grid-att table{min-width:560px}
.grid-att th,.grid-att td{padding:.4rem .5rem;text-align:center}
.grid-att th:first-child,.grid-att td:first-child{text-align:left;position:sticky;left:0;background:var(--panel);z-index:1}
.grid-att thead th:first-child{background:var(--panel-2)}
.grid-att th{cursor:default;line-height:1.2}
.grid-att th small{display:block;color:var(--faint);font-weight:400}
.grid-att th.past{opacity:.55}
.grid-att tr.role-row td{background:var(--bg-2);color:var(--muted);font-size:.85rem;text-align:left;padding:.35rem .7rem;position:static}
.grid-att tbody tr:hover{background:none}
.grid-att tr.mine td{background:rgba(155,214,255,.05)}
.grid-att tr.mine td:first-child{background:#132132}
.grid-att button.att{cursor:pointer}
.grid-att button.att:hover{border-color:var(--frost)}
.grid-att tfoot td{font-size:.85rem;color:var(--muted);background:var(--panel-2)}
.rate{font-size:.85rem;color:var(--muted);font-variant-numeric:tabular-nums}

/* Loot */
.loot-top{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr));gap:.6rem;margin-bottom:1.4rem}
.loot-count{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem;display:flex;justify-content:space-between;align-items:center}
.loot-count b{color:var(--c)}
.loot-count span{font-family:var(--display);font-size:1.3rem}
.method{font-size:.82rem;padding:.08rem .5rem;border-radius:999px;border:1px solid var(--line-2);color:var(--muted);white-space:nowrap}
.method.softres{border-color:rgba(155,214,255,.45);color:var(--frost)}
.method.random{border-color:rgba(232,191,90,.45);color:var(--warn)}
.how{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1rem;margin-bottom:1.6rem}
.how .panel b{display:block;font-family:var(--display);color:var(--frost);font-size:1.05rem;margin-bottom:.2rem}

/* Craft */
.prof-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:1rem;margin-bottom:2rem}
.prof h3{display:flex;justify-content:space-between;align-items:baseline}
.prof h3 span{font-family:var(--display);color:var(--frost)}
.prof ul{list-style:none;margin:.3rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}
.prof li{font-size:.92rem;padding:.12rem .55rem;border-radius:999px;background:var(--panel-2);color:var(--c);font-weight:700}
.prof.none{opacity:.5}

/* Le site (explications) */
.explain{max-width:1000px;margin:0 auto}
.ex-hero{text-align:center;padding:1rem 0 2.5rem}
.ex-hero h2{font-size:clamp(1.8rem,4.5vw,2.8rem);line-height:1.15}
.ex-hero p{color:#c3cfdd;max-width:60ch;margin:1rem auto 0;font-size:1.12rem}
.ex-block{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:2.2rem;align-items:center;margin:0 0 3.5rem}
.ex-block.rev .ex-text{order:2}
@media (max-width:820px){.ex-block{grid-template-columns:1fr;gap:1.2rem}.ex-block.rev .ex-text{order:0}}
.ex-text h3{font-family:var(--display);font-size:1.5rem;margin-bottom:.6rem;font-weight:700}
.ex-text p{color:#c3cfdd;margin:0 0 .8rem}
.ex-visual{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:1.4rem}
/* avant / après */
.ba{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.doc{background:#f3f3f1;border-radius:6px;padding:.9rem;color:#333;font-family:Arial,sans-serif;font-size:.72rem;transform:rotate(-2deg);box-shadow:0 8px 20px rgba(0,0,0,.4)}
.doc .l{height:6px;background:#cfcfcf;border-radius:2px;margin:.35rem 0}
.doc .l.s{width:60%}.doc .l.m{width:80%}
.doc .cm{background:#fde293;border-radius:3px;padding:.2rem .35rem;margin:.4rem 0;font-size:.66rem}
.doc .tbl{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#bbb;margin:.4rem 0}
.doc .tbl i{background:#fff;height:9px}.doc .tbl i.r{background:#f4b4b4}
.mini{background:var(--bg);border:1px solid var(--line-2);border-radius:8px;padding:.6rem;font-size:.7rem;box-shadow:0 8px 24px rgba(0,0,0,.45),0 0 0 1px rgba(155,214,255,.08)}
.mini .mt{display:flex;gap:.5rem;border-bottom:1px solid var(--line);padding-bottom:.35rem;margin-bottom:.5rem;color:var(--muted)}
.mini .mt b{color:var(--frost);font-weight:500}
.mini .mw{font-family:var(--display);font-weight:900;letter-spacing:.1em;color:#eef6ff;font-size:.95rem;text-shadow:0 0 8px rgba(155,214,255,.5)}
.mini .mr{display:flex;gap:.3rem;margin-top:.45rem}
.mini .mr i{height:18px;flex:1;border-radius:4px;background:var(--panel-2)}
.mini .mr i.a{background:rgba(114,212,155,.3)}.mini .mr i.b{background:rgba(228,111,111,.3)}
.ba-label{font-size:.85rem;color:var(--muted);text-align:center;margin-top:.9rem}
/* trois outils */
.tools{display:grid;gap:.7rem}

.tool.main{border-color:var(--frost);background:linear-gradient(90deg,var(--frost-soft),var(--panel-2))}
.tool .ic{width:2.6rem;height:2.6rem;border-radius:10px;display:grid;place-items:center;font-size:1.25rem;background:var(--bg)}
.tool b{display:block}
.tool span{color:var(--muted);font-size:.93rem}
/* qui peut faire quoi */
.who-grid{display:grid;gap:.7rem}
.who{display:grid;grid-template-columns:2.4rem 1fr;gap:.2rem .8rem;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:.85rem .95rem}
.who .ic{font-size:1.5rem;grid-row:span 2;line-height:1.2}
.who b{display:block}
.who ul{margin:0;padding:0;list-style:none;color:#c3cfdd;font-size:.94rem;display:grid;gap:.1rem}
.who li{margin:0}
.who.ref{border-color:var(--gold)}
/* étapes */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:.7rem;counter-reset:st}
.steps li{counter-increment:st;display:grid;grid-template-columns:2.2rem 1fr;gap:.8rem;align-items:center;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:.75rem .9rem}
.steps li::before{content:counter(st);width:2.2rem;height:2.2rem;border-radius:50%;display:grid;place-items:center;background:var(--frost);color:#07111c;font-weight:700}
.steps .fake-btn{display:inline-block;background:#5865F2;color:#fff;border-radius:6px;padding:.1rem .5rem;font-size:.85rem;font-weight:700}
/* démo présence */
.demo-att{display:grid;grid-template-columns:auto repeat(4,1fr);gap:.4rem;align-items:center;font-size:.9rem}
.demo-att .h{color:var(--muted);font-size:.8rem;text-align:center}
.demo-att .n{font-weight:700}
.demo-att .att{justify-self:center}
.demo-att .me{outline:2px solid var(--frost);outline-offset:2px}
.demo-cap{font-size:.88rem;color:var(--muted);margin-top:1rem;text-align:center}
@media (prefers-reduced-motion:no-preference){
  .demo-att .cycle{animation:cycle 4s steps(1) infinite}
  @keyframes cycle{
    0%{background:var(--panel-2);border-color:var(--line);color:var(--faint)}
    25%{background:rgba(114,212,155,.16);border-color:rgba(114,212,155,.45);color:var(--ok)}
    50%{background:rgba(228,111,111,.14);border-color:rgba(228,111,111,.45);color:var(--bad)}
    75%{background:rgba(232,191,90,.13);border-color:rgba(232,191,90,.45);color:var(--warn)}
  }
}
/* flux */
.flow svg{width:100%;height:auto;display:block}
/* hébergement */
.host{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}
.host div{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:.9rem}
.host b{display:block;font-family:var(--display);font-size:1.4rem;color:var(--frost);line-height:1.1}
.host span{color:var(--muted);font-size:.92rem}
.faq{display:grid;gap:.7rem;margin-bottom:2rem}
.faq details{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.9rem 1.1rem}
.faq summary{cursor:pointer;font-weight:700}
.faq p{color:#c3cfdd;margin:.6rem 0 0}
.ex-cta{text-align:center;padding:2rem 0 1rem}
.ex-cta p{color:var(--muted)}

/* ================= v4 : accueil, calendrier, soirées ================= */
.section-title{font-family:var(--display);font-size:clamp(1.6rem,3.5vw,2.2rem);margin:3.5rem 0 1.5rem;padding-top:2rem;border-top:1px solid var(--line)}
.raid.clickable{cursor:pointer;transition:border-color .15s}
.raid.clickable:hover{border-color:var(--frost)}
.raid .go{display:inline-block;margin-top:.8rem;color:var(--frost);font-size:.93rem}
.back{display:inline-flex;align-items:center;gap:.4rem;color:var(--muted);text-decoration:none;margin-bottom:1rem;font-size:.95rem;background:none;border:0;font:inherit;cursor:pointer;padding:0}
.back:hover{color:var(--frost)}

/* Calendrier au mois */
.cal-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:0 0 .8rem}
.cal-nav{display:flex;align-items:center;gap:.7rem}
.cal-nav h3{font-family:var(--display);font-size:1.45rem;margin:0;min-width:11ch;text-align:center;text-transform:capitalize}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--line);gap:1px}
.cal .dow{background:var(--panel-2);color:var(--muted);font-size:.85rem;text-align:center;padding:.5rem 0}
.cal .day-cell{background:var(--panel);min-height:112px;padding:.4rem .45rem .5rem;display:flex;flex-direction:column;gap:.3rem;min-width:0}
.cal .day-cell.out{background:var(--bg-2)}
.cal .day-cell.out .num-day{color:var(--faint)}
.cal .day-cell.past .ev{opacity:.55}
.cal .num-day{font-size:.85rem;color:var(--muted);font-variant-numeric:tabular-nums}
.cal .day-cell.today .d-num{display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--frost);color:#07111c;font-weight:700}
.cal .day-cell.today .d-full{color:var(--frost);font-weight:700}
.ev{display:block;width:100%;text-align:left;background:var(--frost-soft);border:1px solid rgba(155,214,255,.35);border-left:3px solid var(--frost);color:var(--text);
  border-radius:7px;padding:.3rem .45rem;font:inherit;font-size:.85rem;line-height:1.25;cursor:pointer;overflow:hidden;text-decoration:none}
.ev:hover{border-color:var(--frost)}
.ev b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:700;overflow:hidden;word-break:break-word}
.ev small{color:var(--muted);font-size:.78rem}
.ev.milestone{background:var(--gold-soft);border-color:rgba(201,164,90,.4);border-left-color:var(--gold);cursor:default}
.ev.next{box-shadow:0 0 0 2px rgba(155,214,255,.25)}
@media (max-width:760px){
  .cal{grid-template-columns:1fr;background:none;border:0;gap:.5rem;overflow:visible}
  .cal .dow,.cal .day-cell.empty-day{display:none}
  .cal .day-cell{min-height:0;border:1px solid var(--line);border-radius:10px;flex-direction:row;align-items:flex-start;gap:.8rem}
  .cal .day-cell .num-day{min-width:4.5rem;padding-top:.3rem}
  .cal .day-cell .evs{flex:1;display:grid;gap:.35rem}
}
.cal .evs{display:grid;gap:.3rem}
.cal .d-full{display:none}
@media (max-width:760px){.cal .d-num{display:none}.cal .d-full{display:inline;text-transform:capitalize}}
.cal-empty{grid-column:1/-1;background:var(--panel);padding:1.2rem;text-align:center;color:var(--muted)}

/* Vue soirée */
.ev-head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1.25rem;margin-bottom:1.5rem}
@media (max-width:820px){.ev-head{grid-template-columns:1fr}}
.raid-links{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0 0}
.signups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:1rem;margin-bottom:1rem}
.su-col h4{display:flex;justify-content:space-between;font-size:.95rem;margin:0 0 .5rem;color:var(--text)}
.su-col h4 span{font-family:var(--display);color:var(--frost)}
.su-col ul{list-style:none;margin:0;padding:0;display:grid;gap:.25rem}
.su-col li{display:flex;justify-content:space-between;gap:.5rem;font-size:.95rem;padding:.25rem .5rem;border-radius:6px;background:var(--panel-2)}
.su-col li .sp{color:var(--muted);font-size:.85rem;white-space:nowrap}
.su-other{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;color:var(--muted);font-size:.93rem;margin-top:.6rem}
.su-other b{color:var(--text);font-weight:500}
.raid-section{margin-top:2.5rem}
.raid-section > h2{font-family:var(--display);margin-bottom:1rem}

/* Démo du calendrier (page Le site) */
.demo-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;font-size:.72rem}
.demo-cal .h{color:var(--muted);text-align:center;padding-bottom:.2rem}
.demo-cal i{font-style:normal;background:var(--panel-2);border-radius:5px;min-height:62px;padding:.25rem;color:var(--faint);display:flex;flex-direction:column;gap:.2rem}
.demo-cal .ev{font-size:.66rem;padding:.15rem .25rem;cursor:default;border-left-width:2px}
.demo-cal .ev small{display:block;font-size:.6rem}
.demo-cal .ev.hot{box-shadow:0 0 0 2px var(--frost)}

/* ================= v5 : rerolls, import de loot, Battle.net ================= */
td.alts{font-size:.93rem;max-width:16rem}
.alts-block{margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--line)}
.alts-block h4{margin:0 0 .5rem;font-size:.95rem}
.alts-block ul{list-style:none;margin:0 0 .7rem;padding:0;display:grid;gap:.3rem}
.alts-block li{display:flex;align-items:center;gap:.6rem;background:var(--panel-2);border-radius:8px;padding:.35rem .6rem;font-size:.95rem}
.alts-block li .muted{flex:1;font-size:.88rem}
.alts-block .btn{margin-right:.4rem}
.cls-alts{margin-top:.6rem;padding-top:.5rem;border-top:1px solid var(--line);font-size:.88rem;color:var(--muted)}
.cls-alts span{display:block;font-size:.8rem;color:var(--faint);margin-bottom:.15rem}
.cls-alts b{font-weight:500;color:var(--c);opacity:.75}
.method.rclootcouncil{border-color:rgba(155,214,255,.35);color:var(--frost)}
.method.bonus{border-color:rgba(201,164,90,.45);color:var(--gold)}
.method.perso{border-style:dashed}
.bnet-list{display:grid;gap:.35rem;max-height:50vh;overflow:auto}
.bnet-char{display:flex!important;flex-direction:row!important;align-items:center;gap:.6rem;background:var(--panel-2);border-radius:8px;padding:.45rem .6rem;color:var(--text)!important;cursor:pointer}
.bnet-char .muted{font-size:.88rem}
.bnet-char input{accent-color:var(--frost)}
dialog .form input[type=file]{padding:.35rem}

/* ================= v6 : loot par soirée et filtres ================= */
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:0 0 2rem}
.filters .aside{margin-right:.4rem}
.chip-btn.small-chip{padding:.28rem .75rem;font-size:.9rem}
.chip-btn.small-chip small{margin-left:.3rem;color:var(--faint)}
.nights{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:.8rem;margin-top:.8rem}
.night{display:grid;gap:.2rem;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:10px;
  padding:.8rem 1rem;text-decoration:none;color:var(--text)}
.night:hover{border-color:var(--frost);border-left-color:var(--gold)}
.night-date{font-family:var(--display);font-size:1.15rem;display:block}
.night-date::first-letter{text-transform:uppercase}
.night-places{color:var(--muted);font-size:.9rem}
.night-n{font-size:.9rem;color:var(--muted)}
.night-n b{color:var(--frost);font-size:1.05rem}

/* ================= v7 : gestion des soirées ================= */
.cal-actions{display:flex;gap:.5rem;align-items:center}
.cal .day-cell{position:relative}
.day-add{position:absolute;top:.3rem;right:.35rem;width:1.5rem;height:1.5rem;border-radius:6px;border:1px dashed var(--line-2);
  background:transparent;color:var(--muted);font:inherit;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s}
.day-cell:hover .day-add,.day-add:focus-visible{opacity:1}
.day-add:hover{border-color:var(--frost);color:var(--frost)}
@media (hover:none){.day-add{opacity:.6}}
.cal .day-cell.drop-target{outline:2px dashed var(--frost);outline-offset:-3px}
.ev[draggable=true]{cursor:grab}
.ev-raids{border:1px solid var(--line);border-radius:8px;padding:.5rem .7rem .7rem;margin:0}
.ev-raids legend{font-size:.9rem;color:var(--muted);padding:0 .3rem}
#evRaids{display:flex;flex-wrap:wrap;gap:.4rem}
#evRaids label{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:.35rem;background:var(--panel-2);border:1px solid var(--line);
  border-radius:999px;padding:.25rem .7rem;color:var(--text)!important;cursor:pointer}
#evRaids input{accent-color:var(--frost)}
.form .check-line{display:flex!important;flex-direction:row!important;align-items:center;gap:.5rem;color:var(--text)!important}
.form .check-line input{accent-color:var(--frost);width:1rem;height:1rem}
.role-badge{border-color:var(--gold);color:var(--gold)}
[hidden]{display:none!important}
dialog{max-height:92vh;overflow:auto}

/* ================= v8 : actualité des joueurs ================= */
.steps-news{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:1.5rem;align-items:start}
@media (max-width:860px){.steps-news{grid-template-columns:1fr}}
.news-panel{padding:1rem 1.1rem}
.news{list-style:none;margin:0;padding:0;display:grid;gap:.2rem}
.news li{display:grid;grid-template-columns:2.4rem 1fr auto;gap:.7rem;align-items:center;padding:.55rem .2rem;border-bottom:1px solid var(--line)}
.news li:last-child{border-bottom:0}
.news .lvl-badge{width:2.4rem;height:2.4rem;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:.95rem;
  border:1.5px solid var(--line-2);color:var(--muted);background:var(--panel-2)}
.news .first .lvl-badge{border-color:var(--gold);color:var(--gold);background:var(--gold-soft)}
.news .max .lvl-badge{border-color:var(--frost);color:var(--frost);background:var(--frost-soft)}
.news .txt{font-size:.95rem;line-height:1.35}
.news .txt small{display:block;color:var(--faint);font-size:.8rem;margin-top:.1rem}
.news-empty{color:var(--muted);font-size:.95rem;padding:.4rem 0 .2rem}

/* ================= v9 ================= */
:root{--c-raid:#f0a04b;--c-event:#7cc4ff;--c-mile:#72d49b}

/* Barre des référents */
.admin-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;background:var(--gold-soft);border:1px solid rgba(201,164,90,.35);
  border-radius:10px;padding:.55rem .8rem;margin-bottom:2rem}
.admin-bar > span{font-family:var(--display);color:var(--gold);margin-right:.4rem}
.timeline .edit-ms{margin-left:.4rem}

/* Recrutement */
.wanted{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.6rem}
.wanted span{font-size:.88rem;padding:.15rem .6rem;border-radius:999px;border:1px solid rgba(114,212,155,.45);color:var(--ok);background:rgba(114,212,155,.08)}
.recruit-status{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:1.2rem}
.recruit-status .panel{flex:1 1 220px}
.recruit-table{min-width:560px}
.recruit-table td,.recruit-table th{vertical-align:middle}
.recruit-table tr.role-head td{background:var(--panel-2);font-weight:700}
.recruit-table tr.role-head td .muted{font-weight:400}
.recruit-table .cls-name{font-weight:700;color:var(--c)}
.recruit-table .count{font-variant-numeric:tabular-nums}
.recruit-table .none{color:var(--bad)}
.recruit-table tr.wanted-row td{background:rgba(114,212,155,.06)}
.recruit-table .flag{display:inline-block;font-size:.84rem;padding:.08rem .55rem;border-radius:999px;border:1px solid rgba(114,212,155,.5);color:var(--ok)}
.recruit-table input[type=checkbox]{accent-color:var(--ok);width:1.05rem;height:1.05rem;cursor:pointer}

/* Calendrier : couleurs par type */
.cal-legend{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;font-size:.88rem;color:var(--muted);margin:0 0 .6rem}
.cal-legend .lg::before{content:"";display:inline-block;width:.75rem;height:.75rem;border-radius:3px;margin-right:.4rem;vertical-align:-.05em;background:var(--lc)}
.lg.raid{--lc:var(--c-raid)} .lg.event{--lc:var(--c-event)} .lg.milestone{--lc:var(--c-mile)}
.ev.kind-raid{background:rgba(240,160,75,.12);border-color:rgba(240,160,75,.4);border-left-color:var(--c-raid)}
.ev.kind-event{background:rgba(124,196,255,.10);border-color:rgba(124,196,255,.35);border-left-color:var(--c-event)}
.ev.milestone{background:rgba(114,212,155,.10);border-color:rgba(114,212,155,.4);border-left-color:var(--c-mile)}
.ev-kind{display:flex;margin-bottom:0}
.ev-kind label{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:.4rem;padding:.35rem .9rem;border-radius:7px;cursor:pointer;color:var(--text)!important}
.ev-kind input{accent-color:var(--frost)}

/* Loot : sélection multiple */
.loot-sel{width:2.2rem}
.loot-sel input{accent-color:var(--frost);width:1rem;height:1rem;cursor:pointer}
.bulk-bar{position:sticky;bottom:1rem;z-index:5;display:flex;align-items:center;gap:.8rem;background:var(--panel-2);border:1px solid var(--frost);
  border-radius:10px;padding:.55rem .9rem;margin-top:.8rem;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.pl-link{cursor:pointer;text-decoration:none}
.pl-link:hover{text-decoration:underline}
.loot-count{cursor:pointer}
.loot-count:hover{border-color:var(--frost)}

/* Fiche joueur */
.player-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem;margin-bottom:.3rem}
.player-head h2{color:var(--c)}
.char-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin:1rem 0 1.2rem}
.char-tabs button{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--c);color:var(--text);font:inherit;border-radius:8px;padding:.4rem .9rem;cursor:pointer}
.char-tabs button[aria-pressed="true"]{background:var(--panel-2);border-color:var(--frost);border-top-color:var(--c)}
.char-tabs small{color:var(--muted);margin-left:.3rem}
.bis-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:.45rem}
.bis-slot{display:grid;grid-template-columns:7.5rem 1fr;gap:.6rem;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:.5rem .7rem;min-height:2.6rem}
.bis-slot .slot{color:var(--muted);font-size:.9rem}
.bis-slot a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bis-slot .empty{color:var(--faint);font-size:.9rem}
.bis-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:.5rem .8rem}
.staff{margin-top:2.5rem;border:1px solid rgba(201,164,90,.4);background:linear-gradient(180deg,var(--gold-soft),transparent 40%);border-radius:14px;padding:1.2rem 1.3rem}
.staff > h2{font-family:var(--display);color:var(--gold);font-size:1.3rem;margin:0 0 .2rem}
.staff textarea{width:100%;background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;border-radius:8px;padding:.6rem;min-height:5rem}
.parse{font-weight:700;font-variant-numeric:tabular-nums}
.parse.p-grey{color:#9d9d9d}.parse.p-green{color:#1eff00}.parse.p-blue{color:#0070ff}.parse.p-purple{color:#a335ee}.parse.p-orange{color:#ff8000}.parse.p-pink{color:#e268a8}.parse.p-gold{color:#e5cc80}
.perf-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:.7rem;margin:.8rem 0 1rem}
.perf-cards .panel b{display:block;font-family:var(--display);font-size:1.8rem;line-height:1.1}
.wcl-import{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0}
.wcl-import input{flex:1;min-width:240px;background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;padding:.45rem .65rem;border-radius:8px}
.wcl-list{list-style:none;margin:.4rem 0 0;padding:0;display:grid;gap:.3rem}
.wcl-list li{display:flex;gap:.6rem;align-items:center;background:var(--panel-2);border-radius:8px;padding:.4rem .6rem;font-size:.93rem}
.wcl-list li .muted{flex:1}

.news li.news-empty{display:block;border:0}
.tabs .tab{padding-left:.6rem;padding-right:.6rem}


/* ================= v10 ================= */
/* Composition de raid */
.compo{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:1rem;align-items:start}
@media (max-width:900px){.compo{grid-template-columns:1fr}}
.groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:.7rem}
.group{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.55rem .6rem}
.group h4{margin:0 0 .4rem;font-size:.85rem;color:var(--muted);display:flex;justify-content:space-between}
.slot-c{min-height:2rem;border:1px dashed var(--line);border-radius:7px;margin-bottom:.3rem;display:flex;align-items:center;padding:.1rem .5rem;font-size:.93rem;gap:.4rem}
.slot-c.filled{border-style:solid;background:var(--panel-2)}
.slot-c.drop{border-color:var(--frost);background:var(--frost-soft)}
.slot-c .role-dot{width:.55rem;height:.55rem;border-radius:50%;flex:none;background:var(--c-role,var(--line-2))}
.slot-c .x{margin-left:auto}
.pick{cursor:grab}
.pick.picked{outline:2px solid var(--frost);outline-offset:1px}
.bench-list{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.6rem;position:sticky;top:5rem;max-height:70vh;overflow:auto}
.bench-list h4{margin:.2rem 0 .4rem;font-size:.85rem;color:var(--muted)}
.bench-list .slot-c{border-style:solid;background:var(--panel-2)}
.r-Tank{--c-role:#c69b6d}.r-Heal{--c-role:var(--ok)}.r-Mêlée{--c-role:var(--bad)}.r-Distance{--c-role:var(--frost)}
/* Softres */
.sr{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.2rem}
.sr a{font-size:.8rem}
.su-col li{flex-wrap:wrap}
.su-col li .sr{flex-basis:100%}
/* Qui a cet objet en BiS */
.boss-loot{margin-top:1rem}
.boss-loot table{min-width:0}
.boss-loot td{vertical-align:top;font-size:.93rem}
.tagp{display:inline-block;margin:0 .35rem .2rem 0;font-weight:700;color:var(--c)}
.tagp.got{opacity:.5;text-decoration:line-through}
.tagp .sr-badge{font-size:.7rem;font-weight:700;color:#07111c;background:var(--gold);border-radius:4px;padding:0 .25rem;margin-left:.2rem;text-decoration:none}
.killed{color:var(--ok);font-size:.88rem}
/* BiS obtenus */
.bis-slot.got{border-color:rgba(114,212,155,.45);background:rgba(114,212,155,.06)}
.bis-slot .ok{color:var(--ok);font-weight:700;margin-left:.3rem}
.bis-count{font-family:var(--display);font-size:1.3rem;color:var(--ok)}
/* Présence */
.presence{display:inline-flex;align-items:baseline;gap:.4rem}
.presence b{font-family:var(--display);font-size:1.2rem}
.ranking td{font-variant-numeric:tabular-nums}
.meter-bar{height:6px;border-radius:3px;background:var(--panel-2);overflow:hidden;width:120px;display:inline-block;vertical-align:middle;margin-right:.5rem}
.meter-bar i{display:block;height:100%;background:var(--c2,var(--ok))}
/* Abonnement */
.howto{background:var(--panel-2);border-radius:8px;padding:.5rem .8rem}
.howto summary{cursor:pointer;font-weight:700}
.howto p{margin:.4rem 0 0;color:#c3cfdd;font-size:.93rem}
#subscribeDialog .actions form{margin:0}

/* Mode deuxième écran */
body.screen-mode .topbar,body.screen-mode .hero,body.screen-mode footer{display:none!important}
body.screen-mode main{padding:0;max-width:none}
.scr{min-height:100vh;display:flex;flex-direction:column;padding:clamp(.8rem,2vw,2rem);gap:1rem;font-size:clamp(1rem,1.1vw + .6rem,1.7rem)}
.scr-top{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem}
.scr-top .t{font-family:var(--display);font-size:1.05em;color:var(--muted);flex:1;min-width:10rem}
.scr-top .btn{font-size:.8em}
.scr-bosses{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.2rem}
.scr-bosses button{background:var(--panel);border:1px solid var(--line);color:var(--muted);font:inherit;font-size:.8em;border-radius:999px;padding:.35em .9em;cursor:pointer;white-space:nowrap}
.scr-bosses button[aria-pressed="true"]{border-color:var(--frost);color:var(--text);background:var(--frost-soft)}
.scr-bosses button.done{color:var(--ok)}
.scr h1{font-family:var(--display);font-size:2.2em;line-height:1.05;margin:.1em 0 0}
.scr-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(1rem,2vw,2.5rem);flex:1}
@media (max-width:820px),(orientation:portrait){.scr-body{grid-template-columns:1fr}}
.scr-strat{list-style:none;margin:0;padding:0}
.scr-strat li{padding:.45em 0 .45em 1.1em;position:relative;border-bottom:1px solid var(--line);line-height:1.35}
.scr-strat li::before{content:"";position:absolute;left:0;top:1em;width:.4em;height:.4em;border-radius:50%;background:var(--frost)}
.scr-assign{display:grid;gap:.35em}
.scr-assign div{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.45em .7em}
.scr-assign .lbl{display:block;color:var(--muted);font-size:.72em}
.scr-assign b{font-size:.95em}
.scr-assign .mine{border-color:var(--gold);background:var(--gold-soft)}
.scr-nav{display:flex;justify-content:space-between;gap:1rem}
.scr-nav .btn{font-size:.85em;padding:.5em 1em}
.scr-group{font-size:.8em;color:var(--muted)}
.scr-group b{color:var(--gold)}

/* ================= Hauts faits ================= */
:root{--gold-m:#e8c35a;--silver-m:#cfd8e3;--bronze-m:#cd8a4c}
.medal{border-radius:6px;padding:0 .3em;box-shadow:inset 0 0 0 1.5px var(--mc),0 0 12px -3px var(--mc)}
.medal-1{--mc:var(--gold-m)}.medal-2{--mc:var(--silver-m)}.medal-3{--mc:var(--bronze-m)}
.honor{display:grid;grid-template-columns:1fr 1.15fr 1fr;align-items:end;gap:.4rem;margin:0 0 .8rem;padding-bottom:.8rem;border-bottom:1px solid var(--line)}
.honor-step{display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none;color:var(--text);border-radius:10px 10px 4px 4px;padding:.5rem .3rem;background:var(--panel-2);border:1px solid var(--line)}
.honor-step.s1{order:2;padding-top:.9rem;border-color:var(--gold-m);background:linear-gradient(180deg,rgba(232,195,90,.14),var(--panel-2))}
.honor-step.s2{order:1;border-color:var(--silver-m)}
.honor-step.s3{order:3;border-color:var(--bronze-m)}
.honor-medal{font-size:1.5rem;line-height:1}
.honor-step b{font-size:.95rem;margin-top:.2rem;overflow:hidden;text-overflow:ellipsis;max-width:100%;white-space:nowrap}
.honor-step small{color:var(--muted);font-size:.75rem}
.news li.podium-1 .lvl-badge{border-color:var(--gold-m);color:var(--gold-m);background:rgba(232,195,90,.12)}
.news li.podium-2 .lvl-badge{border-color:var(--silver-m);color:var(--silver-m);background:rgba(207,216,227,.1)}
.news li.podium-3 .lvl-badge{border-color:var(--bronze-m);color:var(--bronze-m);background:rgba(205,138,76,.12)}
.awards{display:flex;flex-wrap:wrap;gap:.45rem}
.award{display:inline-flex;align-items:center;gap:.35rem;background:var(--panel);border:1px solid var(--line-2);border-radius:999px;padding:.3rem .8rem;font-size:.95rem}
.award .icon-btn{padding:0 .2rem;font-size:.85rem}
.award.manual{border-color:rgba(201,164,90,.5)}
.award.hidden-award{opacity:.45;text-decoration:line-through}
.medal-chip.m1{border-color:var(--gold-m);box-shadow:0 0 12px -4px var(--gold-m)}
.medal-chip.m2{border-color:var(--silver-m)}
.medal-chip.m3{border-color:var(--bronze-m)}

/* ================= Guide de premiers pas ================= */
dialog.guide{width:min(620px,94vw);padding:1.3rem 1.5rem 1.2rem}
.guide-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}
.guide-dots{display:flex;gap:.35rem}
.guide-dots i{width:.55rem;height:.55rem;border-radius:50%;background:var(--line-2)}
.guide-dots i.on{background:var(--frost)}
.guide-dots i.done{background:var(--ok)}
.guide h3{font-family:var(--display);font-size:1.5rem;margin:0 0 .4rem}
.guide p{color:#c3cfdd;margin:.3rem 0 .8rem}
.guide .form{margin-top:.6rem}
.guide-nav{display:flex;align-items:center;gap:.5rem;margin-top:1.2rem;padding-top:.9rem;border-top:1px solid var(--line)}
.guide-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:.6rem;margin-top:.6rem}
.guide-cards a,.guide-cards div{display:block;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem;text-decoration:none;color:var(--text)}
.guide-cards a:hover{border-color:var(--frost)}
.guide-cards b{display:block;margin-bottom:.15rem}
.guide-cards span{color:var(--muted);font-size:.9rem}
.guide-ok{color:var(--ok);font-weight:700}
.guide-alts{list-style:none;margin:.4rem 0;padding:0;display:grid;gap:.3rem}
.guide-alts li{display:flex;align-items:center;gap:.6rem;background:var(--panel-2);border-radius:8px;padding:.35rem .6rem}
.guide-alts li .muted{flex:1;font-size:.9rem}
.second-prof{display:flex;flex-wrap:wrap;gap:.4rem .9rem}
.second-prof label{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:.35rem;color:var(--text)!important}
.second-prof input{accent-color:var(--frost)}
/* Rappel « Premiers pas » sur sa propre fiche */
.first-steps{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;background:var(--frost-soft);border:1px solid rgba(155,214,255,.35);border-radius:10px;padding:.6rem .9rem;margin:.8rem 0 0}
.first-steps b{font-family:var(--display)}
.first-steps .todo{color:var(--muted);font-size:.92rem}
.first-steps .todo s{color:var(--faint)}

/* ================= Mes personnages, loot des rerolls ================= */
.my-chars{position:relative}
.my-chars summary{list-style:none;cursor:pointer}
.my-chars summary::-webkit-details-marker{display:none}
.my-chars summary::after{content:" ▾";color:var(--muted)}
.my-chars-menu{position:absolute;right:0;top:calc(100% + .4rem);z-index:30;min-width:15rem;background:var(--panel);border:1px solid var(--line-2);
  border-radius:10px;padding:.35rem;box-shadow:0 14px 34px rgba(0,0,0,.5);display:grid;gap:.15rem}
.my-chars-menu a{display:grid;gap:.05rem;padding:.45rem .6rem;border-radius:7px;text-decoration:none}
.my-chars-menu a:hover{background:var(--panel-2)}
.my-chars-menu small{color:var(--muted);font-size:.8rem;white-space:normal}
.menu-add{background:none;border:0;border-top:1px solid var(--line);color:var(--frost);font:inherit;font-size:.9rem;text-align:left;padding:.5rem .6rem;margin-top:.2rem;cursor:pointer;border-radius:0 0 7px 7px}
.menu-add:hover{background:var(--panel-2)}
.loot-sub{font-size:.9rem;color:var(--muted);margin:-.6rem 0 .5rem}
.alts-top .loot-count{opacity:.85}

/* ================= Recrutement refait, rythme ================= */
.head-actions{display:inline-flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.sub-title{font-family:var(--display);font-size:1.25rem;margin:1.6rem 0 .7rem}
.needs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:1rem}
.need{border-top:3px solid var(--ok)}
.need h3{font-family:var(--display);font-size:1.2rem;margin-bottom:.4rem}
.need-all{color:var(--ok);font-weight:700;margin:.1rem 0 .4rem}
.need-specs{display:flex;flex-wrap:wrap;gap:.35rem}
.need-specs span{background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--c);border-radius:7px;padding:.2rem .55rem;font-size:.93rem}
.need-specs b{color:var(--c)}
.recruit-admin{margin-top:1.4rem;padding:1rem 1.1rem;border:1px dashed rgba(201,164,90,.45);border-radius:12px}
.recruit-admin h3{margin:0 0 .3rem}
.day.ok{border-color:var(--ok);background:linear-gradient(180deg,rgba(114,212,155,.12),var(--panel-2))}
.day.ok small{color:var(--ok);font-weight:700}
.decision ul{margin:.4rem 0 0;padding-left:1.1rem;color:#c3cfdd}

/* ================= Mode modification, Discord, recrutement compact ================= */
.edit-bar{background:rgba(201,164,90,.08);border-bottom:1px solid rgba(201,164,90,.3);font-size:.9rem}
.edit-bar-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.4rem;padding-bottom:.4rem;color:var(--muted)}
body.editing .edit-bar{background:rgba(201,164,90,.18)}
body.editing .edit-bar-in{color:var(--gold)}
.edit-only{display:none!important}
body.editor:not(.editing) .edit-only,body.editor:not(.editing) .editor-only.edit-only{display:none!important}
body.editor.editing .edit-only{display:revert!important}
body.editing [data-text][contenteditable]{outline:1px dashed rgba(201,164,90,.6);outline-offset:2px;border-radius:3px;cursor:text}
body.editing [data-text][contenteditable]:hover{background:rgba(201,164,90,.08)}
body.editing [data-text][contenteditable]:focus{outline:2px solid var(--gold);background:rgba(201,164,90,.1)}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:1.4rem}
.hero-actions + .hero-link{margin-top:1rem}
.discord-btn{background:#5865F2;border-color:#5865F2;color:#fff;font-weight:700;text-decoration:none}
.discord-btn:hover{background:#4752c4;border-color:#4752c4}
.recruit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}
@media (max-width:1000px){.recruit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.recruit-grid{grid-template-columns:1fr}}
.rg-col{display:grid;gap:.2rem;align-content:start}
.rg-role,.rg-spec{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.45rem;padding:.25rem .5rem;border-radius:6px;cursor:pointer;font-size:.9rem}
.rg-role{background:var(--panel-2);border:1px solid var(--line-2);padding:.4rem .5rem;margin-bottom:.15rem}
.rg-spec{border-left:3px solid var(--c)}
.rg-spec b{color:var(--c);font-weight:700}
.rg-role.on,.rg-spec.on{background:rgba(114,212,155,.12)}
.rg-role input,.rg-spec input{accent-color:var(--ok);margin:0}
.rg-n{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.82rem}
.rg-n.none{color:var(--bad)}
#editToggle{white-space:nowrap;flex:none}

/* ================= Emblème ================= */
.emblem{width:clamp(84px,9vw,120px);height:auto;margin:0 0 .6rem -.4rem;filter:drop-shadow(0 0 22px rgba(201,164,90,.28))}
.brand{display:inline-flex;align-items:center;gap:.55rem}
.brand img{width:26px;height:26px;border-radius:6px}

/* ================= Recrutement : philosophie et décisions plus compactes ================= */
#recrutement .block{margin-bottom:2rem}
#recrutement .block-head{margin-bottom:.8rem}
.quote.compact{font-size:1rem;margin:0 0 .9rem}
.philo-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:1rem}
.philo-cols .panel{padding:.9rem 1.1rem}
.philo-h{font-family:var(--display);font-size:1.05rem;color:var(--frost);margin:0 0 .5rem}
.philo-list{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.philo-list li{display:grid;grid-template-columns:1.6rem 1fr;gap:.5rem;align-items:baseline}
.philo-list .num{font-family:var(--display);color:var(--gold);text-align:center}
.philo-list b{font-size:.97rem}
.philo-list p{margin:.1rem 0 0;font-size:.92rem;line-height:1.45;color:#b9c6d6}
.decisions-compact{padding:.4rem 1.1rem}
.dec-row{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem;align-items:start;padding:.7rem 0;border-bottom:1px solid var(--line)}
.dec-row:last-child{border-bottom:0}
.dec-big{font-family:var(--display);font-weight:900;font-size:1.45rem;color:var(--frost);line-height:1.1}
.dec-row p,.dec-row ul{margin:.2rem 0 0;font-size:.93rem;color:#b9c6d6}
.dec-row ul{padding-left:1.1rem}
@media (max-width:560px){.dec-row{grid-template-columns:1fr;gap:.2rem}}

/* ================= Téléphone : rythme des raids et en-tête du calendrier ================= */
main{overflow-x:clip}
.week .t-short{display:none}
@media (max-width:720px){
  .week{grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}
  .week .day{padding:.5rem .2rem .45rem;min-width:0}
  .week .meter{height:34px;margin:.35rem 0 .3rem}
  .week .t-long{display:none}
  .week .t-short{display:inline;font-size:.72rem}
  .rythme-block .block-head{flex-direction:column;align-items:flex-start;gap:.3rem}
  .head-actions{width:100%;justify-content:space-between}
  .cal-head{flex-wrap:wrap;gap:.6rem}
  .cal-nav{width:100%;justify-content:space-between}
  .cal-nav h3{font-size:1.25rem;min-width:0}
  .cal-actions{width:100%;flex-wrap:wrap}
  .cal-actions .btn{flex:1 1 auto;text-align:center}
}
@media (max-width:400px){ .week{grid-template-columns:repeat(4,minmax(0,1fr))} .week .t-short{font-size:.66rem} }

/* ================= Barre du haut : menu du compte et passage sur deux lignes ================= */
.acct-btn{display:inline-flex;align-items:center;gap:.45rem}
.acct-btn .role-badge{font-size:.72rem;padding:.05rem .45rem}
.acct-label{max-width:11rem;overflow:hidden;text-overflow:ellipsis}
.menu-title{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);padding:.35rem .6rem .1rem}
.menu-item{background:none;border:0;color:var(--text);font:inherit;font-size:.92rem;text-align:left;padding:.5rem .6rem;border-radius:7px;cursor:pointer;text-decoration:none}
.menu-item:hover{background:var(--panel-2)}
.my-chars-menu .menu-add{border-radius:0}
.my-chars-menu .menu-add + .menu-item{border-top:1px solid var(--line);border-radius:0;margin-top:.1rem}
/* Onglets trop serrés : ils passent sous le logo et le compte */
.topbar.stack .topin{flex-wrap:wrap;gap:0 1rem;padding-top:.55rem}
.topbar.stack .tabs{order:3;flex-basis:100%}
.topbar.stack .tab{padding:.75rem .7rem}
.topbar.stack .account{margin-left:auto}

/* ================= Plans de raid ================= */
.plans{display:grid;gap:1rem;margin-top:1rem}
.plan{margin:0;background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.plan-head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.55rem .8rem;border-bottom:1px solid var(--line)}
.plan-head b{font-family:var(--display)}
.plan-steps{display:flex;flex-wrap:wrap;gap:.3rem}
.plan-steps button,
.plan-steps button[aria-pressed="true"],
.plan-tools{margin-left:auto;display:flex;gap:.6rem;align-items:center;font-size:.9rem}
.plan-canvas svg{display:block;width:100%;height:auto}
.plans.compact{margin-top:1.2rem}
.plans.compact .plan-head{font-size:.8em}
























/* Le plan tient toujours dans la fenêtre, même avec une image haute */

.plan-canvas svg{max-height:80vh}
.scr .plan-canvas svg{max-height:70vh}

/* ================= Images de plans : affichage clair, ajout, agrandissement ================= */
.plans-wrap{margin-top:1.1rem}
.plans-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 .5rem}
.plans{grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));margin-top:0}
.plans.compact{grid-template-columns:1fr}
.plan .plan-canvas{cursor:zoom-in;background:#0a0f17}
.plan .plan-canvas img{display:block;width:100%;height:auto;max-height:70vh;object-fit:contain}
.plan .plan-head{border-bottom:0;border-top:1px solid var(--line)}
.plan-add{margin-top:.6rem}
.img-drop{display:grid;place-items:center;min-height:200px;border:2px dashed var(--line-2);border-radius:12px;padding:1rem;text-align:center;color:var(--muted);cursor:pointer;background:var(--panel-2)}
.img-drop.over,.img-drop:focus{border-color:var(--frost);outline:none}
.img-drop img{max-width:100%;max-height:45vh;border-radius:8px}
dialog.image-dialog{width:min(640px,95vw)}
dialog.lightbox{width:min(1400px,98vw);max-height:98vh;padding:.8rem}
.lb-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem;gap:1rem}
#lightboxBody img,#lightboxBody svg{display:block;width:100%;height:auto;max-height:86vh;object-fit:contain}
/* Plans, boutons d'ajout et butin alignés sur le contenu du boss */
.boss > .plans-wrap,.boss > .plan-add,.boss > .boss-loot{margin:0 1.2rem 1.2rem}
.boss > .plans-wrap{padding-top:1rem;border-top:1px solid var(--line)}

/* ================= Rôles : gestionnaire ================= */
.manager-only{display:none!important}
body.manager .manager-only{display:revert!important}
body.manager:not(.editing) .edit-only{display:none!important}
body.manager.editing .manager-only.edit-only{display:revert!important}
.role-badge.mgr{border-color:var(--frost);color:var(--frost)}

/* ================= Catégories de joueurs ================= */
.cat-pill{display:inline-block;font-size:.72rem;font-weight:700;padding:.05rem .45rem;border-radius:999px;border:1px solid var(--line-2);color:var(--muted);vertical-align:middle}
.cat-pill.c-raider{border-color:rgba(201,164,90,.5);color:var(--gold)}
.cat-pill.c-membre{border-color:var(--line-2);color:#aab6c6;border-style:dashed}
.cat-pill.c-reroll{border-color:rgba(124,196,255,.5);color:var(--frost)}
.c-membre{color:#aab6c6}.c-reroll{color:var(--frost)}
.cat-membre::after,.cat-reroll::after{content:attr(data-cat);font-size:.62rem;font-weight:700;letter-spacing:.02em;margin-left:.3em;padding:0 .3em;border-radius:4px;vertical-align:.15em;font-style:normal}
.cat-membre{font-style:italic;opacity:.85}
.cat-membre::after{border:1px dashed var(--line-2);color:#aab6c6}
.cat-reroll::after{border:1px solid rgba(124,196,255,.45);color:var(--frost)}
.cls li.is-membre{opacity:.8}
.cat-legend{flex-basis:100%;color:var(--muted);font-size:.85rem;margin-top:.3rem}
/* Visiteurs : seulement Accueil, Recrutement, Le site */
body.visitor #t-calendrier,body.visitor #t-roster,body.visitor #t-loot,body.visitor #t-craft{display:none}

/* ================= Listes BiS : état ================= */
.bis-status{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .7rem;margin:.8rem 0 0;font-size:.9rem}
.bis-chip{display:inline-block;font-size:.8rem;font-weight:700;padding:.12rem .55rem;border-radius:999px;border:1px solid}
.bis-chip.ok{color:var(--ok);border-color:rgba(114,212,155,.5);background:rgba(114,212,155,.08)}
.bis-chip.warn{color:var(--warn);border-color:rgba(240,200,90,.5)}
.bis-chip.pend{color:var(--frost);border-color:rgba(124,196,255,.5);background:var(--frost-soft)}
.bis-pending{flex-basis:100%;margin:.3rem 0 0;padding-left:1.1rem;font-size:.9rem}
.bis-status .row-actions{flex-basis:100%}

/* ================= Buffs ================= */
.buff-table td{vertical-align:top}
.src-chip{display:inline-block;font-size:.8rem;margin:0 .2rem .2rem 0;padding:.05rem .5rem;border-radius:999px;border:1px solid var(--line-2);border-left:3px solid var(--c)}
dialog.buff-dialog{width:min(760px,96vw)}
.buff-sources{border:1px solid var(--line);border-radius:8px;padding:.5rem .7rem;margin:0}
.buff-sources legend{color:var(--muted);font-size:.9rem;padding:0 .3rem}
.src-row{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .8rem;padding:.3rem 0;border-bottom:1px solid var(--line);font-size:.9rem}
.src-row:last-child{border-bottom:0}
.src-row b{color:var(--c);min-width:6.5rem}
.src-row label{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:.3rem;color:var(--text)!important}
.src-row input{accent-color:var(--frost)}
.gbuff{font-size:.72rem;font-weight:700;margin-left:auto;margin-right:.5rem;padding:0 .4rem;border-radius:999px;border:1px solid var(--line-2);color:var(--muted);cursor:help}
.gbuff.ok{color:var(--ok);border-color:rgba(114,212,155,.5)}
.gbuff.bad{color:var(--bad);border-color:rgba(224,108,108,.6)}
.group h4{align-items:center}
.coverage{margin-top:1.2rem;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem}
.coverage .block-head{margin-bottom:.6rem}
.coverage h3{margin:0;font-family:var(--display)}
.cov-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:.4rem 1.2rem}
.cov-cols h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:.3rem 0 .3rem}
.cov-list{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
.cov-list li{display:grid;grid-template-columns:1rem 1fr auto;gap:.4rem;align-items:baseline;font-size:.88rem;padding:.12rem 0}
.cov-list .mark{font-weight:800}
.cov-list li.ok .mark{color:var(--ok)}
.cov-list li.miss{color:var(--muted)}
.cov-list li.miss-ess{color:var(--bad);font-weight:700}
.cov-list .cov-who{color:var(--muted);font-size:.8rem;text-align:right;max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cov-list li.miss-ess .cov-who{color:var(--bad)}
.bad-txt{color:var(--bad)}

/* ================= Fiches de combat ================= */
.sheet-link{font-size:.85rem;margin-left:.6rem;font-weight:400}
.raid-path{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .4rem;margin:.2rem 0 1.2rem}
.rp-raid{font-family:var(--display);color:var(--gold);font-weight:700}
.rp-arrow{color:var(--faint)}
.rp-sep{flex-basis:100%;height:0}
.rp-boss{padding:.2rem .7rem;border-radius:999px;border:1px solid var(--line-2);text-decoration:none;color:var(--text);font-size:.92rem}
.rp-boss:hover,.rp-boss.on{border-color:var(--frost);background:var(--frost-soft)}
.sheet-level{margin:0 0 1rem}
.sheet-level button{background:var(--panel);border:1px solid var(--line);color:var(--muted);font:inherit;font-size:.88rem;padding:.3rem .8rem;cursor:pointer}
.sheet-level button:first-child{border-radius:8px 0 0 8px}.sheet-level button:last-child{border-radius:0 8px 8px 0}
.sheet-level button[aria-pressed="true"]{color:var(--text);background:var(--frost-soft);border-color:var(--frost)}
.sheet{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:.9rem;align-items:start}
.sheet-block{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--frost);border-radius:12px;padding:.8rem 1rem}
.sheet-block.lvl-optimisation{border-top-color:var(--gold)}
.sheet-block header{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem;margin-bottom:.4rem}
.sheet-block h3{margin:0;font-family:var(--display);font-size:1.1rem}
.sb-tools{margin-left:auto;display:inline-flex;gap:.2rem;align-items:center}
.sb-body{margin:.2rem 0 .5rem;color:#c3cfdd;font-size:.94rem;line-height:1.5}
.sb-slots{width:100%;border-collapse:collapse;font-size:.92rem}
.sb-slots th{text-align:left;font-weight:600;color:var(--muted);padding:.3rem .5rem .3rem 0;width:42%;vertical-align:middle}
.sb-slots td{padding:.25rem 0;border-bottom:1px solid var(--line)}
.sb-slots tr:last-child td{border-bottom:0}
.sb-slots select{width:100%;background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;font-size:.9rem;padding:.25rem .4rem;border-radius:6px}
.slot-role{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.88rem}
.add-blocks{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin:1rem 0}
.old-strat{margin-top:1.5rem;color:var(--muted)}
.old-strat summary{cursor:pointer}
.scr-sheet{font-size:.8em}
.scr-sheet .sheet-block h3{font-size:1.05em}
.sb-slots{min-width:0;table-layout:fixed;background:none}
.sb-slots th,.sb-slots td{background:none;border-top:0}
.sb-slots select{max-width:100%;min-width:0}

/* ================= Notifications flottantes ================= */
.toast{position:fixed;left:50%;bottom:max(1.2rem,env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:200;width:min(560px,calc(100vw - 1.5rem));
  display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:start;background:#152033;border:1px solid var(--line-2);border-left:5px solid var(--frost);
  border-radius:12px;padding:.85rem 1rem;box-shadow:0 18px 50px rgba(0,0,0,.6);color:var(--text);font-size:.98rem}
.toast[hidden]{display:none!important}
.toast.show{animation:toast-in .28s cubic-bezier(.2,.8,.2,1)}
@keyframes toast-in{from{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%,0)}}
@media (prefers-reduced-motion:reduce){.toast.show{animation:none}}
.toast-icon{width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;font-weight:800;background:var(--frost-soft);color:var(--frost)}
.toast-body p{margin:.2rem 0 0;line-height:1.45}
.toast-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.7rem}
.toast-close{background:none;border:0;color:var(--muted);font-size:1rem;cursor:pointer;padding:.2rem .3rem;line-height:1}
.toast-close:hover{color:var(--text)}
.toast.t-success{border-left-color:var(--ok)}.toast.t-success .toast-icon{background:rgba(114,212,155,.15);color:var(--ok)}
.toast.t-error{border-left-color:var(--bad)}.toast.t-error .toast-icon{background:rgba(224,108,108,.15);color:var(--bad)}
.toast.t-gate{border-left-color:var(--gold);background:linear-gradient(135deg,#1b2436,#152033);width:min(620px,calc(100vw - 1.5rem));padding:1.1rem 1.2rem;font-size:1.02rem}
.toast.t-gate .toast-icon{background:var(--gold-soft);color:var(--gold);width:2.4rem;height:2.4rem;font-size:1.1rem}

/* ================= Candidatures ================= */
.apply-form{max-width:720px}
.apply-form .req{color:var(--bad)}
.apply-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.apply-done{background:rgba(114,212,155,.08);border:1px solid rgba(114,212,155,.4);border-radius:12px;padding:1rem 1.2rem}
.apply-done b{font-family:var(--display);font-size:1.3rem;color:var(--ok)}
dialog.form-dialog{width:min(860px,96vw)}
.fd-questions{display:grid;gap:.4rem}
.fd-row{display:grid;grid-template-columns:minmax(0,2fr) 10rem minmax(0,1.3fr) auto auto;gap:.4rem;align-items:center;background:var(--panel-2);border-radius:8px;padding:.4rem}
.fd-row input,.fd-row select{background:var(--panel);border:1px solid var(--line);color:var(--text);font:inherit;font-size:.9rem;padding:.35rem .5rem;border-radius:6px;min-width:0}
.fd-row input[hidden]{display:block!important;visibility:hidden}
@media (max-width:700px){.fd-row{grid-template-columns:1fr 1fr}}
.dot-alert{width:.55rem;height:.55rem;border-radius:50%;background:var(--bad);box-shadow:0 0 0 3px rgba(224,108,108,.25)}
.count-badge{display:inline-block;min-width:1.3rem;text-align:center;font-size:.75rem;font-weight:800;background:var(--bad);color:#fff;border-radius:999px;padding:0 .35rem;margin-left:.3rem}
.app-st{display:inline-block;font-size:.78rem;font-weight:700;padding:.1rem .55rem;border-radius:999px;border:1px solid var(--line-2);vertical-align:middle}
.st-nouveau{color:#fff;background:var(--bad);border-color:var(--bad)}
.st-en_cours{color:var(--frost);border-color:rgba(124,196,255,.5)}
.st-entretien{color:var(--gold);border-color:rgba(201,164,90,.5)}
.st-accepte{color:var(--ok);border-color:rgba(114,212,155,.5)}
.st-refuse,.st-clos{color:var(--muted)}
.apps-table tr.clickable{cursor:pointer}
.apps-table tr.clickable:hover td{background:var(--panel-2)}
.apps-table tr.is-new td:first-child{box-shadow:inset 3px 0 0 var(--bad)}
.app-head{margin-bottom:1rem}
.app-head .page-title{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}
.app-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:1rem;align-items:start;margin-bottom:1.5rem}
@media (max-width:860px){.app-grid{grid-template-columns:1fr}}
.app-answers h3{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}
.app-answers dl{margin:0;display:grid;gap:.2rem}
.app-answers dt{color:var(--muted);font-size:.86rem;margin-top:.6rem}
.app-answers dd{margin:0;line-height:1.5}
.app-actions{display:grid;gap:.6rem}
.app-actions label{display:grid;gap:.2rem;color:var(--muted);font-size:.88rem}
.app-actions select{background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;padding:.4rem;border-radius:8px}
.app-log{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:.35rem}
.app-log li{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--line-2);border-radius:8px;padding:.45rem .7rem;font-size:.93rem}
.app-log li.k-note{border-left-color:var(--frost)}.app-log li.k-contact{border-left-color:var(--ok)}.app-log li.k-status{border-left-color:var(--gold)}
.app-note textarea{width:100%;background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;border-radius:8px;padding:.6rem}

/* Stratégies de raid */
.strat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:.7rem}
.strat-card{display:grid;gap:.25rem;text-decoration:none;color:var(--text)}
.strat-card:hover{border-color:var(--frost)}
.strat-card .st{justify-self:start;margin-top:.2rem}
.apply-form optgroup{color:var(--gold)}

/* Textes modifiables : les sauts de ligne saisis sont affichés */
[data-text]{white-space:pre-line}
.bis-chip.free{color:var(--muted);border-color:var(--line-2)}

/* Bandeau : l'emblème à droite du nom */
.brandline{display:flex;align-items:center;gap:clamp(.6rem,2vw,1.4rem);flex-wrap:nowrap}
.brandline .wordmark{margin:0}
.brandline .emblem{margin:0;width:clamp(56px,7vw,104px)}

/* ================= Fiche de soirée : en-tête compact, onglets, fiche de combat ================= */
.ev-head-compact{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.6rem 1.5rem;padding:.9rem 1.1rem;margin:0 0 1rem}
.evh-main{min-width:0;flex:1 1 320px}
.evh-when{font-family:var(--display);font-size:1.45rem;line-height:1.15}
.evh-what{color:var(--gold);margin:.15rem 0 0}
.ev-head-compact .prep{margin:.5rem 0 0}
.evh-actions{margin:0;flex:0 1 auto;justify-content:flex-end}
.ev-tabs{margin:0 0 1.4rem}
.combat-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem 1rem;margin:.2rem 0 1rem}
.combat-head .sheet-level{margin:0}
.combat-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:1rem;align-items:start}
@media (max-width:900px){.combat-grid{grid-template-columns:1fr}}
.combat-strat{grid-template-columns:1fr}
.attr-panel{position:sticky;top:5rem}
.attr-panel h3{margin:0 0 .2rem;font-family:var(--display)}
.attr-block h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:.9rem 0 .2rem}
.role-tag{display:inline-block;font-weight:700;font-size:.9em;padding:0 .4em;border-radius:5px;border:1px dashed var(--frost);color:var(--frost)}
.role-tag.unknown{border-color:var(--bad);color:var(--bad)}
.role-fill{font-weight:800;color:var(--c,var(--text));border-bottom:2px solid var(--c,var(--frost));cursor:help}
button.rp-boss{background:none;font:inherit;cursor:pointer}
.compo-state{align-self:center;font-size:.88rem}

.combat-top{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:0 0 1rem}
.combat-top .sheet-level{margin:0}
.combat-index{display:flex;flex-wrap:wrap;gap:.35rem}
.combat-index a{padding:.2rem .7rem;border-radius:999px;border:1px solid var(--line-2);text-decoration:none;font-size:.9rem}
.combat-boss{margin:0 0 2.2rem;scroll-margin-top:7rem}
.combat-title{font-size:1.35rem}
.pl.is-mine{background:var(--gold-soft);border-radius:4px;padding:0 .25em}
.scr-attr{position:static}

/* ================= Fiche de combat générale : éditeur ================= */
.sheet-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:1rem;align-items:start}
@media (max-width:820px){.sheet-layout{grid-template-columns:1fr}}
.roles-col{position:sticky;top:5rem;padding:.9rem 1rem}
.roles-col h3{margin:0 0 .6rem;font-family:var(--display)}
.rc-group{margin:.5rem 0}
.rc-type{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.3rem}
.rc-chips,.rc-types,.rc-suggest{display:flex;flex-wrap:wrap;gap:.3rem}
.rc-add{margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--line)}
.rc-suggest{margin-top:.5rem}
.rc-custom{display:flex;gap:.3rem;width:100%;margin-top:.3rem}
.rc-custom input{flex:1;min-width:0;background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;font-size:.85rem;padding:.25rem .5rem;border-radius:6px}
.rchip{display:inline-flex;align-items:center;gap:.2rem;font-size:.85em;font-weight:700;padding:.05em .55em;border-radius:999px;border:1px solid rgba(124,196,255,.5);background:var(--frost-soft);color:var(--frost);line-height:1.5;white-space:nowrap;vertical-align:baseline}
.rchip.t-tank{border-color:rgba(198,155,109,.6);background:rgba(198,155,109,.15);color:#e0b98a}
.rchip.t-heal{border-color:rgba(114,212,155,.55);background:rgba(114,212,155,.12);color:var(--ok)}
.rchip.t-melee{border-color:rgba(224,108,108,.55);background:rgba(224,108,108,.12);color:#f09a9a}
.rchip.t-range{border-color:rgba(124,196,255,.55);background:var(--frost-soft);color:var(--frost)}
.rchip.unknown{border-color:var(--bad);color:var(--bad);background:none}
.rchip.clickable{cursor:pointer}
button.rchip{font-family:inherit}
.rc-del{background:none;border:0;color:inherit;opacity:.6;cursor:pointer;font-size:1rem;line-height:1;padding:0 0 0 .1rem}
.rc-del:hover{opacity:1}
.sheet-sections{display:grid;gap:.8rem}
.sec-edit header{display:flex;align-items:center;gap:.5rem}
.sec-grip{cursor:grab;color:var(--faint);font-size:1.1rem;user-select:none}
.sec-title{flex:1;min-width:0;background:none;border:0;border-bottom:1px dashed transparent;color:var(--text);font-family:var(--display);font-size:1.1rem;padding:.1rem 0}
.sec-title:hover,.sec-title:focus{border-bottom-color:var(--line-2);outline:none}
.tier-btn{cursor:pointer;background:none}
.rt-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;margin:.5rem 0 .4rem}
.rt-toolbar button{background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;font-size:.82rem;border-radius:6px;padding:.15rem .5rem;cursor:pointer}
.rt-toolbar button:hover{border-color:var(--frost)}
.sec-state{margin-left:auto;font-size:.8rem}
.rt-edit{min-height:4.5rem;padding:.6rem .7rem;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);outline:none;line-height:1.6}
.rt-edit:focus{border-color:var(--frost)}
.rt-edit:empty::before{content:attr(data-placeholder);color:var(--faint)}
.rich h4,.rich .rt-h{font-family:var(--display);font-size:1.02rem;margin:.6rem 0 .2rem;color:var(--gold)}
.rich ul,.rich ol{margin:.3rem 0;padding-left:1.3rem}
.rich li{margin:.15rem 0}
.rich p{margin:.3rem 0}
.rich blockquote,.rich .rt-callout{margin:.5rem 0;padding:.4rem .7rem;border-left:3px solid var(--warn);background:rgba(240,200,90,.08);border-radius:0;font-weight:600}
.rich .rt-callout::before{content:"⚠ ";color:var(--warn)}
.add-sections{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}
.preview-sel{display:inline-flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.9rem}
.preview-sel select{background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;padding:.25rem .4rem;border-radius:6px}
/* Mode 2e écran : texte plus lisible */
.scr-sheet .rich{font-size:1.05em}
.scr-sheet .rich h4{font-size:1.15em}

/* ================= Vides à remplir ================= */
.rchip.blank{border-style:dashed;border-color:var(--gold);color:var(--gold);background:var(--gold-soft);font-weight:600}
.blank-slot{display:inline-block;min-width:5.5rem;padding:0 .45em;border:1px dashed var(--gold);border-radius:6px;color:var(--gold);font-weight:700;text-align:center;line-height:1.5}
.blank-slot.droppable{cursor:copy;background:var(--gold-soft)}
.blank-slot.filled{border-style:solid;background:none;text-align:left}
.blank-slot.over{background:rgba(201,164,90,.3)}
.blank-name{color:var(--c,var(--text));font-weight:800}
.blank-x{background:none;border:0;color:var(--muted);cursor:pointer;font-size:.9rem;padding:0 .1rem;margin-left:.1rem}
.present-strip{flex-basis:100%;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.5rem .7rem}
.present-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.35rem}
.pchip{cursor:grab;font-size:.88rem;font-weight:700;color:var(--c);border:1px solid var(--line-2);border-radius:999px;padding:.05rem .55rem;background:var(--panel-2);user-select:none}
.pchip.picked{outline:2px solid var(--frost);outline-offset:1px}
.add-section-btn{justify-self:start}

/* Filtres des non-placés, dépôt sur les attributions */
.bench-filters{display:grid;grid-template-columns:1fr 1fr;gap:.3rem;margin-bottom:.5rem}
.bench-filters input,.bench-filters select{min-width:0;background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;font-size:.82rem;padding:.25rem .4rem;border-radius:6px}
.bench-filters input{grid-column:1/-1}
.pick-row[hidden]{display:none!important}
tr.role-drop.over th,tr.role-drop.over td{background:rgba(201,164,90,.18)}

/* Images liées à une section */
.sec-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:.6rem;margin-top:.7rem}
.sec-img{margin:0;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.sec-img .plan-canvas{cursor:zoom-in;background:#0a0f17}
.sec-img img,.sec-img svg{display:block;width:100%;height:auto;max-height:340px;object-fit:contain}
.sec-img figcaption{display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;font-size:.85rem}
.sec-img figcaption .icon-btn{margin-left:auto}
.sec-img-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;grid-column:1/-1}
.sec-img-actions select{background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;font-size:.85rem;padding:.25rem .4rem;border-radius:6px}
.scr-sheet .sec-img img{max-height:55vh}

/* ================= Privilèges ================= */
/* Mode modification : les éléments « edit-only » n'apparaissent qu'en mode modification */
body.editing .edit-only{display:revert!important}
/* Un élément « need-X » ne s'affiche qu'à qui a le privilège X (placé en dernier : l'emporte sur la règle ci-dessus) */
body:not(.can-textes) .need-textes{display:none!important}
body:not(.can-accueil) .need-accueil{display:none!important}
body:not(.can-recrutement) .need-recrutement{display:none!important}
body:not(.can-candidatures_read) .need-candidatures_read{display:none!important}
body:not(.can-candidatures) .need-candidatures{display:none!important}
body:not(.can-soirees) .need-soirees{display:none!important}
body:not(.can-compo) .need-compo{display:none!important}
body:not(.can-attributions) .need-attributions{display:none!important}
body:not(.can-combat) .need-combat{display:none!important}
body:not(.can-buffs) .need-buffs{display:none!important}
body:not(.can-roster) .need-roster{display:none!important}
body:not(.can-niveaux) .need-niveaux{display:none!important}
body:not(.can-loot) .need-loot{display:none!important}
body:not(.can-bis) .need-bis{display:none!important}
body:not(.can-craft) .need-craft{display:none!important}
body:not(.can-hautsfaits) .need-hautsfaits{display:none!important}
body:not(.can-staff_read) .need-staff_read{display:none!important}
body:not(.can-staff) .need-staff{display:none!important}
.adm-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:1rem;align-items:start}
@media (max-width:860px){.adm-layout{grid-template-columns:1fr}}
.adm-people{max-height:70vh;overflow:auto;padding:.6rem}
.adm-people input{width:100%;margin-bottom:.4rem;background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;padding:.35rem .5rem;border-radius:6px}
.adm-person{display:flex;justify-content:space-between;gap:.4rem;width:100%;text-align:left;background:none;border:0;border-radius:6px;color:var(--text);font:inherit;padding:.35rem .5rem;cursor:pointer}
.adm-person:hover{background:var(--panel-2)}.adm-person[aria-pressed="true"]{background:var(--frost-soft);outline:1px solid var(--frost)}
.adm-person .n{font-size:.78rem;color:var(--muted)}
.adm-matrix td,.adm-matrix th{vertical-align:middle}
.adm-matrix td.c{text-align:center;width:7rem}
.adm-matrix input{width:1.1rem;height:1.1rem;accent-color:var(--ok)}
.adm-matrix .help{display:block;font-size:.8rem;color:var(--muted)}
.adm-fixed{font-size:.78rem;color:var(--muted)}
.adm-log li{font-size:.88rem;padding:.2rem 0;border-bottom:1px solid var(--line);list-style:none}

/* ================= Privilèges ================= */
/* Mode modification : les éléments « edit-only » n'apparaissent qu'en mode modification */
body.editing .edit-only{display:revert!important}
/* Un élément « need-X » ne s'affiche qu'à qui a le privilège X (placé en dernier : l'emporte sur la règle ci-dessus) */
body:not(.can-textes) .need-textes{display:none!important}
body:not(.can-accueil) .need-accueil{display:none!important}
body:not(.can-recrutement) .need-recrutement{display:none!important}
body:not(.can-candidatures_read) .need-candidatures_read{display:none!important}
body:not(.can-candidatures) .need-candidatures{display:none!important}
body:not(.can-soirees) .need-soirees{display:none!important}
body:not(.can-compo) .need-compo{display:none!important}
body:not(.can-attributions) .need-attributions{display:none!important}
body:not(.can-combat) .need-combat{display:none!important}
body:not(.can-buffs) .need-buffs{display:none!important}
body:not(.can-roster) .need-roster{display:none!important}
body:not(.can-niveaux) .need-niveaux{display:none!important}
body:not(.can-loot) .need-loot{display:none!important}
body:not(.can-bis) .need-bis{display:none!important}
body:not(.can-craft) .need-craft{display:none!important}
body:not(.can-hautsfaits) .need-hautsfaits{display:none!important}
body:not(.can-staff_read) .need-staff_read{display:none!important}
body:not(.can-staff) .need-staff{display:none!important}
.adm-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:1rem;align-items:start}
@media (max-width:860px){.adm-layout{grid-template-columns:1fr}}
.adm-people{max-height:70vh;overflow:auto;padding:.6rem}
.adm-people input{width:100%;margin-bottom:.4rem;background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;padding:.35rem .5rem;border-radius:6px}
.adm-person{display:flex;justify-content:space-between;gap:.4rem;width:100%;text-align:left;background:none;border:0;border-radius:6px;color:var(--text);font:inherit;padding:.35rem .5rem;cursor:pointer}
.adm-person:hover{background:var(--panel-2)}.adm-person[aria-pressed="true"]{background:var(--frost-soft);outline:1px solid var(--frost)}
.adm-person .n{font-size:.78rem;color:var(--muted)}
.adm-matrix td,.adm-matrix th{vertical-align:middle}
.adm-matrix td.c{text-align:center;width:7rem}
.adm-matrix input{width:1.1rem;height:1.1rem;accent-color:var(--ok)}
.adm-matrix .help{display:block;font-size:.8rem;color:var(--muted)}
.adm-fixed{font-size:.78rem;color:var(--muted)}
.adm-log li{font-size:.88rem;padding:.2rem 0;border-bottom:1px solid var(--line);list-style:none}
