:root{--bg:#0a1222;--panel:#0d182c;--panel2:#101e37;--line:rgba(232,184,74,.35);--gold:#e8b84a;--cream:#f1e7d0;--text:#d9d6cc;--muted:#8e97ab;--accent:#2196f3;--red:#e0485a;--green:#43a047;
  --mono:ui-monospace,Menlo,Consolas,"DejaVu Sans Mono",monospace;--ui:"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:14px/1.45 var(--ui);overflow:hidden}
body{display:grid;grid-template-rows:auto 1fr auto auto;grid-template-columns:100%}
button,select,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.spacer{flex:1 1 auto}.sep{width:1px;align-self:stretch;margin:6px 4px;background:var(--line)}
#topbar{display:flex;align-items:center;gap:7px;padding:6px 10px;background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;min-height:48px}
.brand{display:flex;align-items:center;gap:8px;color:var(--cream);font:700 17px var(--ui);letter-spacing:.04em;text-transform:uppercase;margin-right:6px}
.brand-mark{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle,#c8102e 0 35%,#fff 36% 60%,#1d3f9e 61%);border:1px solid var(--gold)}
.btn,.icon-btn{background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:5px 12px;color:var(--text)}
.btn:hover,.icon-btn:hover{border-color:var(--gold);color:#fff}
.btn.gold{background:var(--gold);color:#111;border-color:var(--gold);font-weight:600}.btn.gold:hover{background:var(--cream)}
.btn:disabled,.icon-btn:disabled{opacity:.4;cursor:default}
.icon-btn{width:34px;padding:4px 0;font-size:18px;line-height:1.1}
.chk,.sel{display:flex;align-items:center;gap:5px;color:var(--text);white-space:nowrap}
.sel select{background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:3px 4px}
#main{display:grid;grid-template-columns:auto minmax(0,1fr) 290px;min-height:0}
#tools{display:flex;flex-direction:column;gap:4px;padding:8px 6px;background:var(--panel);border-right:1px solid var(--line);overflow-y:auto}
.tool{width:42px;height:42px;display:grid;place-items:center;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text);padding:0}
.tool svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tool:hover{border-color:var(--line)}.tool[aria-pressed="true"]{background:rgba(232,184,74,.16);border-color:var(--gold);color:var(--gold)}
.tool-sep{height:1px;background:var(--line);margin:4px 2px}
#stage{position:relative;min-width:0;min-height:0;background:#000}
#map{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none;touch-action:none}
#texteditor{position:absolute;margin:0;border:2px solid var(--accent);border-radius:4px;resize:none;overflow:hidden;outline:none;z-index:5;box-sizing:border-box;transform-origin:center center;white-space:pre-wrap;overflow-wrap:break-word}
.hint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);background:rgba(8,14,28,.9);border:1px solid var(--line);border-radius:6px;padding:6px 12px;color:var(--cream);pointer-events:none;z-index:4;max-width:90%}
.loading{position:absolute;left:50%;top:14px;transform:translateX(-50%);background:rgba(8,14,28,.9);border:1px solid var(--line);border-radius:6px;padding:4px 12px;z-index:4}
#props{background:var(--panel);border-left:1px solid var(--line);overflow-y:auto;padding:10px 12px}
#props h2{margin:0 0 8px;font:700 13px var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
#props h3{margin:14px 0 6px;font:600 12px var(--ui);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.field{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;margin:7px 0}
.field>label{color:var(--text)}.field .val{font:600 12px var(--mono);color:var(--cream);min-width:42px;text-align:right}
.field input[type=range]{grid-column:1/-1;width:100%;margin:0;accent-color:var(--accent)}
.field input[type=text],.field input[type=number],.field select,.field textarea{grid-column:1/-1;width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:4px 6px}
.field textarea{min-height:64px;resize:vertical}
.field.inline{grid-template-columns:1fr auto}.field.inline input[type=number]{grid-column:auto;width:92px}
.row{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.row .btn{padding:4px 8px;font-size:13px}
.swatch-btn{display:flex;align-items:center;gap:8px;background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:3px 8px;min-width:104px}
.swatch-btn i{display:inline-block;width:20px;height:20px;border-radius:3px;border:1px solid rgba(255,255,255,.5)}
.palette{position:fixed;z-index:60;background:var(--panel2);border:1px solid var(--gold);border-radius:6px;padding:8px;box-shadow:0 6px 24px rgba(0,0,0,.6);width:214px}
.palette .grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.palette button.sw{width:100%;aspect-ratio:1;border-radius:4px;border:1px solid rgba(255,255,255,.45);padding:0}
.palette button.sw[aria-pressed="true"]{outline:2px solid var(--accent);outline-offset:1px}
.palette .custom{display:flex;align-items:center;gap:8px;margin-top:8px}
.muted{color:var(--muted);font-size:12px}
.info{font:12px var(--mono);color:var(--cream);background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:5px 8px;margin:6px 0}
#slides{display:flex;gap:8px;align-items:stretch;padding:6px 10px;background:var(--panel);border-top:1px solid var(--line);overflow-x:auto;min-height:104px}
#slideList{display:flex;gap:8px}
.slide{width:150px;flex:0 0 auto;background:var(--panel2);border:2px solid transparent;border-radius:6px;padding:3px;display:flex;flex-direction:column;gap:3px;position:relative}
.slide[aria-current="true"]{border-color:var(--gold)}
.slide canvas{width:100%;height:64px;background:#000;border-radius:3px;display:block;object-fit:contain}
.slide .name{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--cream);cursor:pointer;background:none;border:0;text-align:left;padding:0 2px}
.slide .acts{display:flex;gap:2px;justify-content:space-between}
.slide .acts button{background:none;border:0;color:var(--muted);padding:0 4px;font-size:14px;line-height:1}
.slide .acts button:hover{color:var(--gold)}
.slide.drop-before{box-shadow:-4px 0 0 var(--accent)}
.slide-add{flex:0 0 52px;background:transparent;border:2px dashed var(--line);border-radius:6px;color:var(--gold);font-size:26px}
.slide-add:hover{border-color:var(--gold)}
#statusbar{display:flex;gap:18px;align-items:center;padding:2px 12px;background:#070d1a;border-top:1px solid var(--line);font:12px var(--mono);color:var(--muted);min-height:24px}
#stCoords{color:var(--cream);min-width:300px}
#toasts{position:fixed;right:14px;bottom:36px;display:flex;flex-direction:column;gap:6px;z-index:200;pointer-events:none}
.toast{background:#173b1e;border:1px solid #2e7d32;color:#fff;border-radius:6px;padding:8px 14px;box-shadow:0 3px 12px rgba(0,0,0,.5);max-width:420px}
.toast.err{background:#4a1515;border-color:#b71c1c}
.st-modal{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;padding:14px}
.st-dialog{background:var(--panel);border:1px solid var(--gold);border-radius:8px;max-width:min(560px,100%);max-height:100%;overflow:auto;padding:16px 18px;box-shadow:0 12px 40px rgba(0,0,0,.7);width:100%}
.st-dialog.wide{max-width:min(980px,100%)}
.st-dialog h2{margin:0 0 10px;font:700 18px var(--ui);color:var(--cream)}
.st-dialog p{margin:6px 0;color:var(--text)}
.st-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}
.st-dialog .field input[type=text]{margin-top:2px}
.msg{min-height:20px;margin-top:8px;font-size:13px}.msg.err{color:#ff8a80}.msg.ok{color:#81c784}
.menu{position:fixed;z-index:70;background:var(--panel2);border:1px solid var(--gold);border-radius:6px;padding:4px;min-width:200px;box-shadow:0 6px 24px rgba(0,0,0,.6)}
.menu button{display:block;width:100%;text-align:left;background:none;border:0;padding:7px 12px;border-radius:4px}
.menu button:hover{background:rgba(232,184,74,.16)}
/* sélecteur de carte */
.mp{position:relative}
.mp-btn{display:flex;align-items:center;gap:8px;min-width:170px;max-width:230px;background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:5px 10px;text-align:left}
.mp-btn span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mp-panel{position:fixed;z-index:80;background:var(--panel2);border:1px solid var(--gold);border-radius:6px;box-shadow:0 8px 28px rgba(0,0,0,.65);display:flex;flex-direction:column;width:300px;overflow:hidden}
.mp-panel input{margin:8px;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:5px 8px}
.mp-list{list-style:none;margin:0;padding:0 0 4px;overflow-y:auto;flex:1;min-height:0}
.mp-list li{padding:7px 14px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mp-list li.active{background:rgba(255,255,255,.12)}.mp-list li[aria-selected="true"]{color:var(--accent);font-weight:700}
.mp-count{padding:4px 12px;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}
/* menu des ressources */
.as-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.as-top input[type=search]{flex:1;min-width:160px;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:6px 10px}
.as-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}
.as-tab,.as-chip{background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:3px 12px;font-size:13px}
.as-tab[aria-pressed="true"],.as-chip[aria-pressed="true"]{background:rgba(232,184,74,.2);border-color:var(--gold);color:var(--gold)}
.as-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px;max-height:56vh;overflow-y:auto;padding:2px}
.as-card{display:flex;flex-direction:column;background:var(--panel2);border:2px solid var(--line);border-radius:8px;padding:0;overflow:hidden;text-align:center;color:var(--text)}
.as-card:hover{border-color:var(--gold)}.as-card[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
.as-prev{height:96px;display:grid;place-items:center;padding:6px;background-size:cover;background-position:center}
.as-prev img{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55))}
.as-name{padding:5px 6px 6px;font-size:12.5px;word-break:break-word}
.as-name small{display:block;color:var(--muted);font-size:11px}
.as-empty{padding:24px;text-align:center;color:var(--muted)}
@media (max-width:980px){#main{grid-template-columns:auto minmax(0,1fr)}#props{position:fixed;right:0;top:48px;bottom:130px;width:290px;z-index:50;transform:translateX(100%);transition:transform .15s}body.show-props #props{transform:none}}
@media (max-width:640px){.brand-name{display:none}.btn{padding:5px 8px;font-size:13px}}
