/* Dashboard Le Masoandro — mêmes couleurs et polices que le site */
:root{--cream:#FDFBF7;--sand:#E8DECB;--beige:#F4EFE4;--bronze:#B48F6B;--gold:#B5813F;--gold-dark:#946727;--brown:#3A2B20;--muted:#6B5D50;--line:#E3D8C4;--ok:#2f7d4f;--warn:#B5813F;--bad:#a8432f}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--brown);font-family:'Hanken Grotesk','Segoe UI',system-ui,sans-serif;font-size:15.5px;line-height:1.55}
h1,h2{font-family:'Gelasio',Georgia,serif;font-weight:400;margin:0 0 .6em}
h1{font-size:2.2rem}
a{color:var(--gold-dark);text-decoration:none}a:hover{text-decoration:underline}
code{background:var(--beige);padding:2px 6px;border-radius:5px}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* Boutons / champs */
.abtn{display:inline-flex;align-items:center;justify-content:center;padding:.8em 1.6em;border-radius:999px;border:1.5px solid var(--bronze);background:var(--bronze);color:#fff;font:600 1rem 'Gelasio',Georgia,serif;cursor:pointer;transition:background .3s,color .3s,border-color .3s;text-decoration:none}
.abtn:hover{background:var(--brown);border-color:var(--brown);text-decoration:none;color:#fff}
.abtn--sm{padding:.55em 1.2em;font-size:.92rem}
.abtn--ghost{background:transparent;color:var(--brown);border-color:var(--brown)}
label{display:block;font-weight:600;font-size:.9rem;margin-bottom:14px}
label input{display:block;width:100%;margin-top:6px;padding:12px 14px;border:1.5px solid var(--line);border-radius:6px;background:#fff;font:inherit}
label input:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 4px rgba(181,129,63,.15)}
.alert{padding:12px 16px;border-radius:10px;margin-bottom:18px;font-size:.95rem;transition:opacity .6s}
.alert.ok{background:#e7f3ea;color:#1f5d39}
.alert.err{background:#f8e5e0;color:#8c2f1d}

/* Connexion / installation */
.auth{min-height:100vh;display:grid;place-items:center;background:var(--sand);padding:20px}
.auth__card{width:min(420px,100%);background:var(--cream);border-radius:26px;padding:42px 36px;box-shadow:0 40px 70px -40px rgba(58,43,32,.55);border-top:10px solid var(--bronze)}
.auth__logo{font-family:'Pinyon Script',cursive;font-size:3.4rem;line-height:1.1;text-align:center}
.auth__sub{text-align:center;color:var(--gold);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;margin:0 0 26px}
.auth .abtn{width:100%;margin-top:6px}
.auth__back{display:block;text-align:center;margin-top:18px;font-size:.9rem}
.hint{color:var(--muted);font-size:.92rem}

/* Barre du haut */
.atop{background:var(--sand);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.atop__in{max-width:1280px;margin:auto;padding:12px 24px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.atop__logo{font-family:'Pinyon Script',cursive;font-size:2rem;line-height:1}
.atop__logo small{font:700 .66rem 'Hanken Grotesk',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dark);margin-left:8px}
.atop nav{display:flex;gap:6px;flex-wrap:wrap}
.atop nav a{padding:7px 14px;border-radius:999px;color:var(--brown);font-weight:600;font-size:.9rem}
.atop nav a:hover{background:rgba(255,255,255,.6);text-decoration:none}
.atop nav a.on{background:var(--brown);color:#fff}
.atop nav a.out{color:var(--bad)}

.amain{max-width:1280px;margin:auto;padding:34px 24px 70px}
.amain--narrow{max-width:560px}
.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px}
.panel h2{font-size:1.3rem}

/* KPIs */
.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:26px}
.kpi{background:var(--beige);border-radius:16px;padding:18px 20px;color:var(--brown);display:flex;flex-direction:column;gap:2px;transition:transform .3s,box-shadow .3s}
a.kpi:hover{transform:translateY(-3px);box-shadow:0 18px 30px -22px rgba(58,43,32,.6);text-decoration:none}
.kpi span{font-size:.82rem;color:var(--muted);font-weight:600}
.kpi strong{font:400 2.3rem/1.1 'Gelasio',Georgia,serif}
.kpi--new strong{color:var(--gold-dark)}.kpi--ok strong{color:var(--ok)}

/* Filtres */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.filters input[type=search]{flex:1 1 280px;padding:11px 14px;border:1.5px solid var(--line);border-radius:999px;background:#fff;font:inherit}
.filters select{padding:11px 14px;border:1.5px solid var(--line);border-radius:999px;background:#fff;font:inherit}

/* Tableau */
.tablewrap{background:#fff;border:1px solid var(--line);border-radius:18px;overflow-x:auto}
.atable{width:100%;border-collapse:collapse;min-width:900px}
.atable th{background:var(--beige);text-align:left;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-dark);padding:14px 16px;white-space:nowrap}
.atable td{padding:14px 16px;border-top:1px solid var(--line);vertical-align:top;font-size:.93rem}
.atable tr:hover td{background:#fdfaf3}
.atable small{color:var(--muted)}
.atable .empty{text-align:center;color:var(--muted);padding:44px}
.st-annulee td{opacity:.62}
.pill{appearance:none;-webkit-appearance:none;border:0;border-radius:999px;padding:6px 28px 6px 14px;font:700 .82rem 'Hanken Grotesk',sans-serif;cursor:pointer;background:var(--beige) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%233A2B20' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 11px center}
.pill--nouvelle{background-color:#f6e8cf;color:#8a5f1c}
.pill--confirmee{background-color:#e0f0e6;color:#1f5d39}
.pill--annulee{background-color:#f3dfda;color:#8c2f1d}
.icon-del{background:none;border:0;color:var(--muted);cursor:pointer;font-size:1rem;width:32px;height:32px;border-radius:50%}
.icon-del:hover{background:#f3dfda;color:var(--bad)}
.msg summary{cursor:pointer;color:var(--gold-dark);font-size:.85rem;margin-top:4px}
.msg p{margin:6px 0 0;padding:10px 12px;background:var(--beige);border-radius:8px;font-size:.88rem;max-width:36ch}
.pager{display:flex;gap:6px;justify-content:center;margin-top:22px;flex-wrap:wrap}
.pager a{min-width:38px;height:38px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);color:var(--brown);font-weight:600}
.pager a.on,.pager a:hover{background:var(--brown);color:#fff;border-color:var(--brown);text-decoration:none}
.count{text-align:center;color:var(--muted);font-size:.88rem;margin-top:14px}

@media (max-width:980px){.kpis{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){
  .atable{min-width:0}
  .atable thead{display:none}
  .atable,.atable tbody,.atable tr,.atable td{display:block;width:100%}
  .atable tr{padding:14px 6px;border-top:8px solid var(--beige)}
  .atable td{border:0;padding:6px 14px}
  .atable td[data-l]::before{content:attr(data-l);display:block;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-dark);font-weight:700}
  .msg p{max-width:none}
}
