/* =========================
   Thèmes & variables
   ========================= */
:root{
  --bg-0:#0f171e;
  --bg-1:#111f29;
  --rsi-cyan:#35b6ec;
  --rsi-blue:#1c4d6e;
  --rsi-light:#9bc3d1;
  --text-0:#eaf3f7;
  --muted:#9db2bd;
  --ok:#33d17a;
  --danger:#ff5c5c;
  --focus:#53AEF7;
  --radius:14px;
  --shadow:0 10px 30px rgba(0,0,0,.35);
}

:root[data-theme="light"]{
  --bg-0:#f5f8fb;
  --bg-1:#ffffff;
  --rsi-cyan:#1283b2;
  --rsi-blue:#0d3a55;
  --rsi-light:#2d5b6d;
  --text-0:#0f171e;
  --muted:#4f6b79;
  --ok:#1c9d64;
  --danger:#c83737;
  --focus:#0b82ff;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text-0);
  background:radial-gradient(1200px 800px at 85% -10%, rgba(53,182,236,.15), transparent 60%),
             radial-gradient(900px 700px at -10% 110%, rgba(28,77,110,.25), transparent 60%), var(--bg-0);
  line-height:1.4;
}
:root[data-theme="light"] body{
  background:
    radial-gradient(1200px 800px at 85% -10%, rgba(18,131,178,.10), transparent 60%),
    radial-gradient(900px 700px at -10% 110%, rgba(13,58,85,.08), transparent 60%), var(--bg-0);
}

.app-header{display:flex; align-items:center; gap:16px; padding:18px 16px; max-width:1100px; margin:0 auto}
.logo{height:44px; width:auto; filter: drop-shadow(0 2px 4px rgba(0,0,0,.5));}
.brand{display:flex; flex-direction:column}
.brand h1{margin:0; font: 700 22px Rajdhani, system-ui; letter-spacing:.02em}
.brand .meta{color:var(--muted); font-size:14px}
.header-actions{margin-left:auto}

.wrap{max-width:1100px; margin:0 auto; padding:8px 16px 28px}

.mode-banner{margin:0 0 8px; padding:8px 12px; border-radius:10px; font-weight:700; font-size:14px; color:var(--text-0);
  background:linear-gradient(180deg, rgba(53,182,236,.18), rgba(28,77,110,.25)); border:1px solid rgba(147,197,207,.35)}

.panel{
  background:linear-gradient(180deg, color-mix(in srgb, var(--bg-1) 95%, transparent), color-mix(in srgb, var(--bg-1) 85%, transparent));
  border:1px solid rgba(147, 197, 207, .15);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:14px;
}

.toolbar{display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; margin:0 0 12px}
.toolbar .left, .toolbar .right{display:flex; gap:10px; align-items:center}

button, .btn{
  appearance:none; border:1px solid rgba(147,197,207,.25); color:var(--text-0); background:linear-gradient(180deg, rgba(53,182,236,.1), rgba(28,77,110,.15));
  padding:10px 14px; border-radius:12px; font-weight:600; cursor:pointer; transition:.2s transform, .2s box-shadow, .2s background;
}
button:hover{transform:translateY(-1px); box-shadow:0 8px 16px rgba(0,0,0,.2)}
button:focus{outline:2px solid var(--focus); outline-offset:2px}
.btn-primary{background:linear-gradient(180deg, color-mix(in srgb, var(--rsi-cyan) 25%, transparent), color-mix(in srgb, var(--rsi-blue) 35%, transparent)); border-color: rgba(147,197,207,.4)}
.btn-ok{background:linear-gradient(180deg, color-mix(in srgb, var(--ok) 20%, transparent), color-mix(in srgb, var(--ok) 32%, transparent)); border-color:color-mix(in srgb, var(--ok) 50%, transparent)}
.btn-danger{background:linear-gradient(180deg, color-mix(in srgb, var(--danger) 18%, transparent), color-mix(in srgb, var(--danger) 30%, transparent)); border-color:color-mix(in srgb, var(--danger) 45%, transparent)}

.grid{display:grid; grid-template-columns: repeat(4, 1fr); gap:10px}
@media (max-width: 720px){ .grid{grid-template-columns: repeat(2, 1fr);} }
@media (max-width: 430px){ .grid{grid-template-columns: 1fr;} }

/* ===== Tiles (images) ===== */
.tile{
  position:relative; isolation:isolate;
  border:1px solid rgba(155,195,209,.25); border-radius:16px;
  overflow:hidden; background:color-mix(in srgb, var(--rsi-blue) 20%, var(--bg-1));
  transition:.2s transform, .2s box-shadow, .2s border-color;
  aspect-ratio: 1 / 1;
  display:flex; align-items:stretch; justify-content:stretch;
}
.tile:hover{box-shadow:0 8px 24px rgba(0,0,0,.15); transform:translateY(-1px)}
.tile img{width:100%; height:100%; object-fit:cover; display:block; opacity:.95}
.tile[data-checked="true"]{ border-color: color-mix(in srgb, var(--ok) 70%, transparent);}
.tile[data-checked="true"]::after{
  content:""; position:absolute; inset:0; background:color-mix(in srgb, var(--ok) 18%, transparent);
}
.badge-check{
  position:absolute; right:8px; top:8px; z-index:2;
  padding:6px 8px; border-radius:999px; font-weight:700; font-size:12px;
  background:color-mix(in srgb, var(--ok) 30%, var(--bg-1)); border:1px solid color-mix(in srgb, var(--ok) 45%, transparent);
}

.stats{font:600 14px Rajdhani, system-ui; letter-spacing:.02em; color:var(--rsi-light)}
.foot{margin-top:10px; color:var(--muted); font-size:13px; display:flex; gap:8px; flex-wrap:wrap; align-items:center}
.notice{margin-top:10px; padding:8px 10px; border:1px dashed rgba(155,195,209,.35); border-radius:12px; color:var(--muted); font-size:13px}

/* Impression */
@media print{
  .toolbar, .header-actions, #themeToggle{ display:none !important }
  body{ background:#fff }
  .panel{ box-shadow:none; border-color:#ccc }
}
