:root{
  --bg:#111722;
  --panel:#182231;
  --panel2:#202d3e;
  --line:#334155;
  --text:#f8fafc;
  --muted:#a8b3c4;
  --chip:#eef2f7;
  --chipText:#1f2937;
  --shadow:0 8px 24px rgba(0,0,0,.20);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
body{padding:18px}
.toolbar{
  position:sticky;top:0;z-index:20;
  display:flex;gap:20px;justify-content:space-between;align-items:center;
  padding:14px 16px;margin:-18px -18px 18px;
  background:rgba(17,23,34,.95);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line)
}
h1{font-size:22px;margin:0 0 4px}
.summary{font-size:13px;color:var(--muted)}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
input[type=search]{
  min-width:260px;padding:9px 11px;border:1px solid var(--line);
  border-radius:8px;background:#0e1520;color:var(--text);outline:none
}
button{
  border:1px solid #475569;background:#253449;color:white;border-radius:8px;
  padding:9px 11px;cursor:pointer
}
button:hover{background:#31445c}
.toggle{display:flex;gap:7px;align-items:center;font-size:13px;color:var(--muted);white-space:nowrap}
.board{display:grid;grid-template-columns:repeat(auto-fit,minmax(410px,1fr));gap:18px;align-items:start}
.zone{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel);box-shadow:var(--shadow)}
.zone-title{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;border-bottom:1px solid rgba(255,255,255,.12)}
.zone-title h2{font-size:18px;margin:0}
.zone-count,.quarter-count,.island-count{font-size:12px;opacity:.8}
.quarters{padding:12px;display:grid;gap:10px}
.quarter{border:1px solid var(--line);border-radius:10px;background:var(--panel2);overflow:hidden}
.quarter>summary{list-style:none;cursor:pointer;padding:10px 12px;display:flex;justify-content:space-between;gap:8px;font-weight:700}
.quarter>summary::-webkit-details-marker{display:none}
.quarter>summary:before{content:"▾";margin-right:7px;color:var(--muted)}
.quarter:not([open])>summary:before{content:"▸"}
.islands{padding:0 10px 10px;display:grid;gap:8px}
.island{background:#151e2b;border:1px solid #2b3a4d;border-radius:8px;padding:9px}
.island-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:7px}
.island h3{font-size:13px;margin:0;font-weight:700}
.apps{display:flex;gap:6px;flex-wrap:wrap}
.app{
  background:var(--chip);color:var(--chipText);border-radius:6px;
  padding:5px 7px;font-size:12px;line-height:1.2;border:1px solid rgba(0,0,0,.08)
}
.app.off{opacity:.5;text-decoration:line-through}
.setup,.empty{
  border:1px dashed #64748b;border-radius:12px;padding:20px;background:#151e2b;
  color:var(--muted);max-width:760px;margin:30px auto
}
.setup h2{margin-top:0;color:var(--text)}
.hidden{display:none!important}

/* Couleurs par zone, automatiques et stables */
.zone[data-color="0"] .zone-title{background:#255fa6}
.zone[data-color="1"] .zone-title{background:#7b3fa0}
.zone[data-color="2"] .zone-title{background:#2d7b55}
.zone[data-color="3"] .zone-title{background:#a55728}
.zone[data-color="4"] .zone-title{background:#8a334d}
.zone[data-color="5"] .zone-title{background:#3f6f76}
.zone[data-color="6"] .zone-title{background:#6b5b2c}
.zone[data-color="7"] .zone-title{background:#555c68}

@media(max-width:760px){
  body{padding:10px}
  .toolbar{position:static;margin:-10px -10px 12px;align-items:flex-start;flex-direction:column}
  .actions{justify-content:flex-start}
  input[type=search]{min-width:min(100%,320px);width:100%}
  .board{grid-template-columns:1fr}
}
@media print{
  body{background:white;color:black;padding:0}
  .toolbar{position:static;background:white;color:black;border:0;margin:0 0 10px;padding:0}
  .actions{display:none}
  .summary{color:#555}
  .board{display:block}
  .zone{break-inside:avoid;margin:0 0 10mm;background:white;box-shadow:none;border:1px solid #777}
  .quarters{grid-template-columns:repeat(2,1fr)}
  .quarter,.island{background:white;color:black;border-color:#bbb}
  .app{border:1px solid #aaa}
}
