:root{
  --bg:#0e1714;--panel:#16231e;--line:#2a3d35;--fg:#ebe6d8;--muted:#97a69d;--gravel:#d8c9a4;
  --ok:#2f9e6b;--bad:#c2473c;color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:15px;padding:20px max(16px,env(safe-area-inset-right,0px)) 48px max(16px,env(safe-area-inset-left,0px))}
.wrap{max-width:1080px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
header{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap}
h1{font-family:var(--display);font-weight:800;font-size:clamp(30px,6vw,44px);letter-spacing:.02em;text-transform:uppercase;margin:0;line-height:1}
h1 span{color:var(--cochonnet)}
.sub{color:var(--muted);margin:4px 0 0}
h2{font-family:var(--display);font-weight:700;font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:var(--gravel);margin:0 0 10px}
.status{font:600 14px var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.status.ok{color:var(--ok)}.status.ko{color:var(--bad)}

#view{position:relative;width:100%;aspect-ratio:16/9;border-radius:10px;overflow:hidden;border:1px solid var(--line);
  background:radial-gradient(ellipse at 50% 120%,#6b5b3c 0,transparent 60%),linear-gradient(180deg,#2d3b30 0,#4a4a35 55%,#6e6246 100%)}
#view::after{content:"APERÇU · fond du direct simulé";position:absolute;right:10px;bottom:6px;font-size:11px;letter-spacing:.1em;color:#fff8;z-index:2;pointer-events:none}
#view #board,#view #lower,#view #stats,#view #logoImg{cursor:move;touch-action:none}
#view #ticker{cursor:ns-resize;touch-action:none}
.dragging{outline:3px dashed var(--cochonnet);outline-offset:6px}

.deck{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:14px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;min-width:0}
.team{border-top:5px solid var(--tc)}
input[type=text],input[type=password],select{width:100%;padding:10px;border-radius:7px;border:1px solid var(--line);background:var(--bg);color:var(--fg);font:inherit;margin-bottom:8px}
input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--cochonnet);outline-offset:2px}
.tr{display:flex;gap:8px;align-items:center;margin-bottom:8px}
input[type=color]{width:48px;height:40px;border:1px solid var(--line);border-radius:7px;background:var(--bg);padding:2px}
.big{font:800 84px/1 var(--display);text-align:center;margin:4px 0 8px;font-variant-numeric:tabular-nums}
.btns{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
button{font:700 17px var(--display);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);background:#22342c;color:var(--fg);padding:11px 16px;border-radius:7px;cursor:pointer;min-height:44px}
button:active{transform:scale(.97)}
button.go{background:var(--ok);border-color:var(--ok);color:#fff}
button.warn{background:#7a5a12;border-color:#7a5a12}
button.bad{background:var(--bad);border-color:var(--bad);color:#fff}
button.on{background:var(--cochonnet);color:#1a1500;border-color:var(--cochonnet)}
.ballctl{display:flex;align-items:center;gap:10px;color:var(--muted)}
.ballctl b{font:700 28px var(--display);color:var(--fg);min-width:24px;text-align:center}
.clockbig{font:700 40px var(--display);font-variant-numeric:tabular-nums;margin-bottom:8px}
.chips{display:flex;flex-direction:column;gap:6px;margin:4px 0 10px}
.chip{display:flex;gap:6px}
.pl{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;text-align:left;border-left:8px solid var(--c);text-transform:none;letter-spacing:0;padding:8px 12px;font-size:19px}
.pl small{font:500 13px var(--body);color:var(--muted)}
.pl.on{background:var(--cochonnet);color:#1a1500}
.pl.on small{color:#4a3d00}
.del{padding:0 14px;color:var(--muted)}
.empty{color:var(--muted);margin:4px 0 10px}
input[type=file]{width:100%;margin-bottom:10px;color:var(--muted);font:inherit}
.rng{display:flex;align-items:center;gap:10px;color:var(--muted);margin-bottom:10px}
.rng input{flex:1;min-width:0}
#logoPrev{display:block;max-height:70px;max-width:100%;margin-bottom:10px;border-radius:6px;background:#0007;padding:6px}
.cgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-top:6px}
.cg{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;min-width:0}
.cg input{width:40px;height:34px;flex:none;border:1px solid var(--line);border-radius:6px;background:var(--bg);padding:2px}
.hint{color:var(--muted);margin:0 0 10px;font-size:13px}
.tablewrap{overflow-x:auto;margin-top:12px}
.st-tab{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:14px}
.st-tab th,.st-tab td{padding:6px 8px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
.st-tab th:first-child,.st-tab td:first-child{text-align:left}
.st-tab th{color:var(--gravel);font:700 13px var(--display);letter-spacing:.1em;text-transform:uppercase}
.urlrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.urlrow code{flex:1;min-width:0;overflow-wrap:anywhere;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:10px;font-size:14px}
#login{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}
#login .card{width:min(420px,100%)}
#login p{color:var(--muted);margin:0 0 10px}
#loginErr{color:var(--bad);min-height:20px;margin:0 0 6px}

[hidden]{display:none!important}
