/* MARIAGE CONNECTÉ — Back-office */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Jost:wght@300;400;500;600&display=swap');

:root{
  --bordeaux:#7A1F2B; --bordeaux-deep:#5E141F; --or:#B8860B; --or-soft:#C9A227;
  --nuit:#1A2340; --rose:#C2185B; --creme:#FBF7F2; --creme-2:#F4ECE2;
  --ink:#3a3230; --muted:#7d716b; --line:#e7ddd2; --ok:#2e7d52; --danger:#b5384a;
  --shadow:0 4px 24px rgba(90,20,31,.08);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Jost',sans-serif;background:var(--creme);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:600;color:var(--bordeaux);line-height:1.15}
a{color:var(--bordeaux)}

/* Layout */
.layout{display:flex;min-height:100vh}
.sidebar{width:250px;background:linear-gradient(180deg,#2a0e15,#4a1620);color:#fff;padding:26px 18px;position:sticky;top:0;height:100vh;flex-shrink:0}
.sidebar .logo{font-family:'Cormorant Garamond',serif;font-size:1.25rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;font-weight:600}
.sidebar .logo small{display:block;font-size:.5rem;letter-spacing:.3em;color:var(--or-soft);margin-top:3px;font-family:'Jost'}
.sidebar nav{margin-top:34px;display:flex;flex-direction:column;gap:4px}
.sidebar nav a{display:flex;align-items:center;gap:11px;color:rgba(255,255,255,.8);text-decoration:none;padding:11px 14px;border-radius:8px;font-size:.9rem;transition:.2s}
.sidebar nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.sidebar nav a.active{background:var(--or);color:#3a1119;font-weight:600}
.sidebar .foot{position:absolute;bottom:24px;left:18px;right:18px;font-size:.72rem;color:rgba(255,255,255,.5)}
.sidebar .foot a{color:var(--or-soft);text-decoration:none}

.main{flex:1;padding:32px clamp(20px,4vw,48px);max-width:1200px}
.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;flex-wrap:wrap;gap:12px}
.topbar h1{font-size:2rem}
.topbar .who{font-size:.85rem;color:var(--muted)}

/* Cards / stats */
.grid{display:grid;gap:18px}
.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 22px;box-shadow:var(--shadow)}
.stat .n{font-family:'Cormorant Garamond',serif;font-size:2.3rem;color:var(--bordeaux);line-height:1}
.stat .l{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.stat.accent .n{color:var(--or)} .stat.ok .n{color:var(--ok)} .stat.danger .n{color:var(--danger)}

.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px;box-shadow:var(--shadow);margin-bottom:22px}
.card h2{font-size:1.4rem;margin-bottom:6px}
.card .sub{color:var(--muted);font-size:.88rem;margin-bottom:18px}

/* Wedding cards */
.weddings{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.wcard{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow);transition:transform .2s}
.wcard:hover{transform:translateY(-4px)}
.wcard .head{padding:22px;color:#fff;position:relative}
.wcard .head h3{color:#fff;font-size:1.5rem}
.wcard .head .date{font-size:.8rem;opacity:.85;margin-top:4px}
.wcard .body{padding:16px 22px}
.wcard .body .row{display:flex;justify-content:space-between;font-size:.85rem;padding:5px 0;color:var(--muted)}
.wcard .body .row b{color:var(--ink)}
.wcard .actions{display:flex;gap:8px;padding:0 22px 20px}
.badge{display:inline-block;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;padding:3px 10px;border-radius:20px;font-weight:600}
.badge.draft{background:#f0e6d8;color:#9a7b3a}
.badge.published{background:#d9f0e4;color:var(--ok)}
.badge.pending{background:#f0e6d8;color:#9a7b3a}
.badge.yes{background:#d9f0e4;color:var(--ok)}
.badge.no{background:#f5dde1;color:var(--danger)}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:8px;border:0;cursor:pointer;
  font-family:'Jost';font-size:.85rem;font-weight:500;text-decoration:none;transition:.2s;letter-spacing:.02em}
.btn-primary{background:var(--bordeaux);color:#fff} .btn-primary:hover{background:var(--bordeaux-deep)}
.btn-gold{background:var(--or);color:#3a1119} .btn-gold:hover{background:var(--or-soft)}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink)} .btn-ghost:hover{border-color:var(--bordeaux);color:var(--bordeaux)}
.btn-sm{padding:6px 12px;font-size:.78rem}
.btn-wa{background:#25D366;color:#fff} .btn-wa:hover{background:#1da851}
.btn-danger{background:transparent;border:1px solid #eecdd2;color:var(--danger)} .btn-danger:hover{background:var(--danger);color:#fff}

/* Forms */
.field{margin-bottom:16px}
.field label{display:block;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:500}
.field input,.field select,.field textarea{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:8px;
  font-family:'Jost';font-size:.92rem;background:#fff;transition:border-color .2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--or)}
.field .hint{font-size:.75rem;color:var(--muted);margin-top:4px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.color-swatch{display:inline-block;width:22px;height:22px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);vertical-align:middle;margin-right:6px}

/* Tables */
.table{width:100%;border-collapse:collapse;font-size:.88rem}
.table th{text-align:left;padding:11px 12px;background:var(--nuit);color:#fff;font-weight:500;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase}
.table th:first-child{border-radius:8px 0 0 0} .table th:last-child{border-radius:0 8px 0 0}
.table td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.table tr:hover td{background:var(--creme-2)}
.table .actions{display:flex;gap:6px;flex-wrap:wrap}

/* Alerts */
.alert{padding:13px 16px;border-radius:8px;font-size:.88rem;margin-bottom:18px}
.alert-ok{background:#d9f0e4;color:#1c5b39;border:1px solid #b6e0c9}
.alert-err{background:#f5dde1;color:#8a2233;border:1px solid #eebfc6}

/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(120% 90% at 50% -10%,rgba(184,134,11,.14),transparent 55%),linear-gradient(180deg,#2a0e15,#4a1620,#6a1f2c);padding:20px}
.login-box{background:var(--creme);border-radius:16px;padding:42px 38px;width:100%;max-width:400px;box-shadow:0 30px 70px rgba(0,0,0,.35)}
.login-box .logo{text-align:center;margin-bottom:26px}
.login-box .logo .t{font-family:'Cormorant Garamond',serif;font-size:1.5rem;letter-spacing:.16em;text-transform:uppercase;color:var(--bordeaux);font-weight:600}
.login-box .logo .s{font-size:.6rem;letter-spacing:.3em;color:var(--or);margin-top:4px}

.empty{text-align:center;padding:60px 20px;color:var(--muted)}
.empty .ic{font-size:2.5rem;margin-bottom:12px}

/* Modal */
.modal-bg{position:fixed;inset:0;background:rgba(30,10,15,.55);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}
.modal-bg.show{display:flex}
.modal{background:#fff;border-radius:14px;padding:28px;max-width:440px;width:100%;box-shadow:0 30px 70px rgba(0,0,0,.3);max-height:90vh;overflow:auto}
.modal h3{margin-bottom:14px}
.qr-holder{display:flex;justify-content:center;padding:16px;background:#fff;border-radius:10px}

@media(max-width:820px){
  .sidebar{position:fixed;left:-260px;z-index:90;transition:left .3s} .sidebar.open{left:0}
  .main{padding-top:70px}
  .mobile-bar{display:flex!important}
  .form-row{grid-template-columns:1fr}
}
.mobile-bar{display:none;position:fixed;top:0;left:0;right:0;z-index:80;background:var(--bordeaux);color:#fff;padding:14px 18px;align-items:center;gap:14px}
.mobile-bar button{background:none;border:0;color:#fff;font-size:1.3rem;cursor:pointer}
