
:root{
  --paper:#F5F6F1; --card:#FFFFFF; --ink:#17231F; --muted:#5E6B64; --line:#DCDFD6;
  --pine:#2D5A45; --ocean:#1E6A86; --sun:#F3B63F; --stripe:#141414; --minus:#A8432C;
  --sea:#D7E8EE; --land:#E9EEE2;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#121815; --card:#1B231F; --ink:#E8EDE8; --muted:#9DAAA2; --line:#2C3832;
    --pine:#7FC0A0; --ocean:#7CC0DB; --sun:#F3B63F; --minus:#E38C74; --sea:#16303A; --land:#1D2923;
  }
}
:root[data-theme="dark"]{
  --paper:#121815; --card:#1B231F; --ink:#E8EDE8; --muted:#9DAAA2; --line:#2C3832;
  --pine:#7FC0A0; --ocean:#7CC0DB; --sun:#F3B63F; --minus:#E38C74; --sea:#16303A; --land:#1D2923;
}
html{scroll-padding-top:calc(76px + env(safe-area-inset-top,0px));scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}}
*{box-sizing:border-box;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Bricolage Grotesque',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:16px;line-height:1.5;}
a{color:var(--ocean);}
a:focus-visible,button:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--sun);outline-offset:2px;}
img{max-width:100%;display:block;}

/* Hero: the one bold element */
.hero{background:repeating-linear-gradient(118deg,var(--stripe) 0 26px,#fff 26px 40px,var(--stripe) 40px 58px,#fff 58px 80px);padding:56px 20px 64px;}
.hero-inner{max-width:1040px;margin:0 auto;}
.hero-card{display:inline-block;background:var(--paper);color:var(--ink);padding:22px 28px 24px;border-radius:4px;box-shadow:10px 10px 0 var(--sun);max-width:100%;}
.hero h1{margin:0;font-weight:800;font-size:clamp(2.2rem,6vw,4.2rem);line-height:0.95;letter-spacing:-0.02em;}
.hero p{margin:12px 0 0;font-size:1.05rem;color:var(--muted);max-width:52ch;}

.wrap{max-width:1040px;margin:0 auto;padding:0 20px 120px;}

/* Identity bar */
.who{position:sticky;top:0;z-index:10;background:var(--paper);border-bottom:1px solid var(--line);padding:12px 0;padding-top:calc(12px + env(safe-area-inset-top,0px));margin:0 -20px 32px;}
.who-inner{max-width:1040px;margin:0 auto;padding:0 20px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.who label{font-weight:700;}
.who select{font:inherit;font-size:1rem;padding:8px 12px;border:2px solid var(--ink);border-radius:999px;background:var(--card);color:var(--ink);min-width:200px;}
.who .hint{color:var(--muted);font-size:0.9rem;}
@media (max-width:600px){.who .hint{display:none;}}

/* Overview: ranking + map */
.overview{display:grid;grid-template-columns:1fr;gap:24px;margin-bottom:48px;}
@media (min-width:860px){.overview{grid-template-columns:1fr 1.15fr;}}
.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;}
.panel h2{margin:0 0 14px;font-size:1.25rem;font-weight:800;}
.rank{list-style:none;margin:0;padding:0;}
.rank li{border-top:1px solid var(--line);}
.rank li:first-child{border-top:none;}
.rank a{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:10px 0;color:var(--ink);text-decoration:none;}
.rank .pos{font-weight:800;font-size:1.1rem;color:var(--muted);}
.rank li:first-child .pos{color:var(--pine);}
.rank .nm{font-weight:700;}
.rank .meta{display:block;font-size:0.85rem;color:var(--muted);}
.rank .bar{height:6px;background:var(--line);border-radius:3px;margin-top:5px;overflow:hidden;}
.rank .bar span{display:block;height:100%;background:var(--pine);border-radius:3px;}
.rank .score{font-weight:800;font-size:1.3rem;text-align:right;}
.rank .score small{font-size:0.75rem;color:var(--muted);font-weight:400;}
.map svg{width:100%;height:auto;display:block;border-radius:10px;}
.map svg a:focus-visible circle{stroke:var(--sun);stroke-width:4;}
.map .cap{font-size:0.82rem;color:var(--muted);margin-top:8px;}

/* House blocks */
.house{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;margin-bottom:36px;}
.house-top{display:grid;grid-template-columns:1fr;}
@media (min-width:860px){.house-top{grid-template-columns:44% 1fr;}}
.photo{position:relative;min-height:240px;background:var(--land);}
.photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.photo .tag{position:absolute;left:14px;top:14px;background:var(--stripe);color:#fff;font-weight:700;font-size:0.85rem;padding:5px 11px;border-radius:999px;}
.info{padding:22px 24px 20px;}
.info h3{margin:0 0 6px;font-size:1.45rem;line-height:1.15;font-weight:800;letter-spacing:-0.01em;}
.facts{display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--muted);font-size:0.92rem;margin-bottom:16px;}
.facts b{color:var(--ink);}
.prices{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:18px;}
.prices div{padding:9px 10px;text-align:center;border-left:1px solid var(--line);}
.prices div:first-child{border-left:none;}
.prices span{display:block;font-size:0.78rem;color:var(--muted);}
.prices strong{font-size:1.1rem;}
.pm{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:14px;}
@media (min-width:560px){.pm{grid-template-columns:1fr 1fr;}}
.pm h4{margin:0 0 4px;font-size:0.95rem;}
.pm .plus h4{color:var(--pine);}
.pm .minus h4{color:var(--minus);}
.pm ul{margin:0;padding-left:18px;font-size:0.93rem;}
.pm li{margin:2px 0;}
.near{font-size:0.92rem;margin:0 0 14px;}
.near b{display:block;font-size:0.95rem;}
.links{display:flex;flex-wrap:wrap;gap:8px;}
.links a{display:inline-block;padding:7px 14px;border-radius:999px;border:1.5px solid var(--ocean);text-decoration:none;font-weight:600;font-size:0.9rem;}
.links a.main{background:var(--ocean);color:#fff;}

/* Vote zone */
.vote{border-top:1px dashed var(--line);padding:18px 24px 22px;background:linear-gradient(var(--card),var(--card));}
.vote h4{margin:0 0 10px;font-size:1rem;}
.scale{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
.scale button{font:inherit;font-weight:700;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;}
.scale button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.scale button:disabled{opacity:0.45;cursor:not-allowed;}
.vote textarea{width:100%;min-height:64px;resize:vertical;font:inherit;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);}
.vote textarea:disabled{opacity:0.5;}
.results{margin-top:16px;}
.results .sum{font-size:0.95rem;margin-bottom:6px;}
.results .sum b{font-size:1.1rem;}
.results table{width:100%;border-collapse:collapse;font-size:0.92rem;}
.results td{padding:7px 6px;border-top:1px solid var(--line);vertical-align:top;}
.results td.n{white-space:nowrap;font-weight:700;}
.results td.s{white-space:nowrap;}
.tbl{overflow-x:auto;}

.admin-del{background:none;border:none;color:var(--minus);cursor:pointer;font-size:1rem;padding:2px 6px;}
.admin-confirm{background:var(--minus);color:#fff;border:none;border-radius:6px;padding:4px 9px;font:inherit;font-size:0.8rem;cursor:pointer;}
.admin-cancel{background:none;border:1px solid var(--line);border-radius:6px;padding:4px 9px;font:inherit;font-size:0.8rem;cursor:pointer;color:var(--ink);}

/* Save bar */
.savebar{position:fixed;left:0;right:0;bottom:0;z-index:10;background:var(--ink);color:var(--paper);padding:12px 20px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));}
.savebar-inner{max-width:1040px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.savebar .status{font-size:0.92rem;opacity:0.85;}
button.save{font:inherit;font-weight:800;font-size:1rem;background:var(--sun);color:#17231F;border:none;border-radius:999px;padding:11px 26px;cursor:pointer;}
button.save:disabled{opacity:0.5;cursor:not-allowed;}


/* Barre "mode admin" (ajoutée pour la version NAS) */
.adminbar{max-width:1040px;margin:0 auto;padding:10px 20px 90px;font-size:0.85rem;color:var(--muted);}
.admin-link{background:none;border:1px solid var(--line);border-radius:999px;padding:5px 12px;font:inherit;font-size:0.82rem;cursor:pointer;color:var(--muted);}
#admin-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
#admin-pass{font:inherit;padding:6px 10px;border:1.5px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);}
.admin-error{color:var(--minus);}
