:root {
    color-scheme: dark;
    --bg: #020817;
    --panel: #071c3e;
    --panel-2: #0b2b5b;
    --line: rgba(67, 158, 255, .48);
    --purple: #8d31c7;
    --gold: #ffbc13;
    --green: #31dc49;
    --red: #ff5871;
    --text: #f7f9ff;
    --muted: #a8bcd9;
}

* { box-sizing: border-box; }

body {
    min-height: 100vh;
    margin: 0;
    color: var(--text);
    font-family: Inter, "Segoe UI", sans-serif;
    background:
        radial-gradient(circle at 85% 15%, rgba(108, 40, 177, .19), transparent 30%),
        radial-gradient(circle at 15% 30%, rgba(25, 131, 227, .15), transparent 32%),
        var(--bg);
}

a { color: #65cfff; }

.admin-topbar {
    min-height: 76px;
    padding: 10px max(18px, calc((100% - 1400px) / 2));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border-bottom: 1px solid var(--line);
    background: rgba(4, 18, 43, .96);
    box-shadow: 0 12px 30px rgba(0,0,0,.35);
}

.admin-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #fff;
    text-decoration: none;
}

.admin-brand img {
    width: 54px;
    height: 54px;
    object-fit: contain;
}

.admin-brand span { display: grid; color: var(--muted); font-size: 12px; }
.admin-brand strong { color: #fff; font-size: 18px; }

.admin-topbar nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.admin-topbar nav a {
    padding: 9px 12px;
    border: 1px solid transparent;
    border-radius: 7px;
    color: #c9d8ee;
    text-decoration: none;
    font-weight: 800;
    font-size: 13px;
}

.admin-topbar nav a:hover,
.admin-topbar nav a.active {
    border-color: rgba(137, 69, 205, .65);
    color: #fff;
    background: rgba(112, 38, 166, .32);
}

.admin-shell {
    width: min(1400px, calc(100% - 30px));
    margin: 28px auto 50px;
}

.admin-page-title p {
    margin: 0;
    color: #af67e7;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
}

.admin-page-title h1 {
    margin: 5px 0 20px;
    font-size: clamp(30px, 4vw, 48px);
}

.stat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 18px;
}

.stat-card,
.admin-panel {
    border: 1px solid var(--line);
    border-radius: 12px;
    background: linear-gradient(145deg, rgba(10, 42, 87, .96), rgba(4, 18, 43, .98));
    box-shadow: 0 14px 35px rgba(0,0,0,.30);
}

.stat-card {
    min-height: 120px;
    padding: 18px;
    display: grid;
    align-content: center;
}

.stat-card span { color: var(--muted); font-weight: 800; }
.stat-card strong { margin-top: 8px; font-size: 34px; }
.stat-card--open { border-color: rgba(49, 220, 73, .55); }
.stat-card--open strong { color: var(--green); }
.stat-card--closed { border-color: rgba(255, 88, 113, .58); }
.stat-card--closed strong { color: var(--red); }

.admin-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.admin-panel {
    overflow: hidden;
    margin-bottom: 16px;
}

.admin-panel--wide { grid-column: 1 / -1; }

.admin-panel > header {
    min-height: 58px;
    padding: 13px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    border-bottom: 1px solid rgba(75, 158, 242, .26);
    background: linear-gradient(90deg, rgba(38, 109, 187, .20), transparent);
}

.admin-panel h2 { margin: 0; font-size: 18px; }

.compact-list,
.audit-list,
.admin-details,
.empty-state {
    margin: 0;
    padding: 15px;
}

.compact-list div,
.audit-list div,
.admin-details div {
    min-height: 46px;
    padding: 8px 4px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    border-bottom: 1px solid rgba(80, 155, 232, .13);
}

.compact-list strong,
.number-chip {
    min-width: 45px;
    padding: 5px 8px;
    border: 1px solid #2cc5f7;
    border-radius: 6px;
    text-align: center;
    background: #087ebf;
}

.audit-list div { display: grid; grid-template-columns: 160px 1fr 160px; }
.audit-list span, .audit-list time { color: var(--muted); font-size: 13px; }

.admin-details { list-style: none; }
.admin-details dt { color: var(--muted); }
.admin-details dd { margin: 0; font-weight: 800; }

.admin-alert {
    margin-bottom: 16px;
    padding: 12px 15px;
    border: 1px solid #45b7f1;
    border-radius: 8px;
    background: rgba(18, 83, 134, .38);
}

.admin-alert--success { border-color: var(--green); background: rgba(25, 113, 39, .36); }
.admin-alert--error { border-color: var(--red); background: rgba(133, 27, 45, .42); }

.reservations-toolbar { flex-wrap: wrap; }
.search-form { display: flex; flex-wrap: wrap; gap: 8px; }

input,
button {
    font: inherit;
}

input[type="text"],
input[type="search"],
input[type="password"],
input[type="number"],
input[type="datetime-local"] {
    min-height: 43px;
    padding: 9px 11px;
    border: 1px solid rgba(76, 158, 242, .52);
    border-radius: 7px;
    color: #fff;
    background: #04152f;
}

button,
.form-actions button,
.search-form button {
    min-height: 43px;
    padding: 9px 15px;
    border: 1px solid #bd55f0;
    border-radius: 7px;
    color: #fff;
    background: linear-gradient(#8e31c6, #4b1475);
    font-weight: 900;
    cursor: pointer;
}

.admin-table-wrap { overflow-x: auto; }

.admin-table {
    width: 100%;
    border-collapse: collapse;
}

.admin-table th,
.admin-table td {
    padding: 12px 14px;
    border-bottom: 1px solid rgba(80, 155, 232, .13);
    text-align: left;
}

.admin-table th {
    color: #b7cae4;
    background: rgba(3, 15, 36, .42);
}

.table-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.table-actions form { margin: 0; }

.danger-link {
    min-height: auto;
    padding: 0;
    border: 0;
    color: #ff778a;
    background: none;
    font-weight: 800;
}

.danger-zone {
    padding-bottom: 18px;
    border-color: rgba(255, 88, 113, .55);
}

.danger-zone > p,
.danger-zone > form {
    margin: 15px;
}

.confirmation-field {
    display: grid;
    gap: 7px;
    max-width: 350px;
    margin-bottom: 12px;
}

.danger-button {
    border-color: #ff667c;
    background: linear-gradient(#ad2940, #5c1020);
}

.form-panel { max-width: 760px; }

.admin-form {
    padding: 18px;
    display: grid;
    gap: 16px;
}

.admin-form label {
    display: grid;
    gap: 7px;
    color: #dce7f6;
    font-weight: 800;
}

.form-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.switch-field {
    grid-template-columns: auto 1fr;
    align-items: center;
}

.switch-field input {
    width: 22px;
    height: 22px;
}

.admin-login-page {
    display: grid;
    place-items: center;
    padding: 20px;
}

.login-card {
    width: min(460px, 100%);
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: 16px;
    text-align: center;
    background: linear-gradient(145deg, rgba(10, 42, 87, .98), rgba(4, 18, 43, .99));
    box-shadow: 0 25px 65px rgba(0,0,0,.50);
}

.login-card img {
    width: 125px;
    height: 125px;
    object-fit: contain;
}

.login-card .eyebrow {
    margin: 5px 0 0;
    color: #bd6df0;
    font-weight: 900;
    letter-spacing: .15em;
}

.login-card h1 { margin: 6px 0 10px; }
.login-intro { color: var(--muted); line-height: 1.5; }

.login-card form {
    display: grid;
    gap: 14px;
    margin-top: 20px;
    text-align: left;
}

.login-card label { display: grid; gap: 7px; font-weight: 800; }
.back-link { display: inline-block; margin-top: 18px; }

@media (max-width: 900px) {
    .admin-topbar { align-items: flex-start; flex-direction: column; }
    .stat-grid { grid-template-columns: repeat(2, 1fr); }
    .admin-grid { grid-template-columns: 1fr; }
    .admin-panel--wide { grid-column: auto; }
    .audit-list div { grid-template-columns: 1fr; }
}

@media (max-width: 540px) {
    .stat-grid { grid-template-columns: 1fr; }
    .admin-table th:nth-child(3),
    .admin-table td:nth-child(3) { display: none; }
    .table-actions { align-items: flex-start; flex-direction: column; }
}
/* Pack 7 — Tirage */
.draw-hero header,.draw-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.eyebrow{color:#70cfff;font-weight:800;letter-spacing:.12em}.admin-button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;padding:12px 18px;background:linear-gradient(180deg,#35a7ff,#1764d2);color:#fff;text-decoration:none;font-weight:900;cursor:pointer}.admin-button--secondary{background:#243b61}.admin-button--danger{background:linear-gradient(180deg,#ef5e65,#a91f2a)}.admin-button--large{font-size:1.15rem;padding:18px 28px}.draw-launch{text-align:center}.winner-panel{text-align:center;background:radial-gradient(circle at top,#183c88,#07152f)}.winner-panel>p{color:#f5cb53;font-weight:900;letter-spacing:.16em}.winner-number{width:190px;aspect-ratio:1;margin:20px auto;border-radius:50%;display:grid;place-items:center;font-size:6rem;font-weight:1000;background:radial-gradient(circle at 35% 25%,#fff,#45baff 11%,#135ed2 48%,#051e51 78%);border:7px solid #fff;box-shadow:0 0 50px #258eff}.winner-panel h2{font-size:2.4rem}.draw-actions{justify-content:center}.draw-status{display:inline-block;border-radius:999px;padding:5px 10px;font-weight:800}.draw-status--pending{background:#6b5310;color:#ffe27a}.draw-status--confirmed{background:#145e3c;color:#6dffbd}.draw-status--cancelled{background:#681c28;color:#ff9ca7}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:12px;border-bottom:1px solid rgba(255,255,255,.1);text-align:left}
/* Pack 8 — attribution des lots et historique */
.stat-card__text{font-size:1.05rem!important}.draw-stats{margin-bottom:18px}.lot-progress-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:16px}.lot-progress{padding:14px;border:1px solid rgba(92,175,255,.3);border-radius:10px;background:rgba(3,18,44,.62)}.lot-progress>div:first-child{display:flex;justify-content:space-between;gap:12px}.lot-progress span{color:var(--muted);font-size:.9rem}.lot-progress__bar{height:9px;margin-top:12px;border-radius:999px;background:#05132d;overflow:hidden}.lot-progress__bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2aa8ff,#a84cff)}.lot-progress--green .lot-progress__bar i{background:linear-gradient(90deg,#22b66d,#6effb1)}.lot-progress--blue .lot-progress__bar i{background:linear-gradient(90deg,#2583ff,#63d6ff)}.winner-panel--animated .winner-number{animation:winnerReveal .65s ease-out both}.winner-prize{display:inline-grid;gap:5px;margin:0 auto 22px;padding:12px 22px;border:1px solid rgba(244,201,78,.5);border-radius:10px;background:rgba(69,45,8,.42)}.winner-prize span{color:#f4c94e;font-size:.82rem;font-weight:900;letter-spacing:.13em}.winner-prize strong{font-size:1.2rem}.history-filters{display:flex;gap:9px;flex-wrap:wrap;padding:15px}.history-filters select{min-height:43px;padding:9px 11px;border:1px solid rgba(76,158,242,.52);border-radius:7px;color:#fff;background:#04152f}@keyframes winnerReveal{from{opacity:0;transform:scale(.45) rotate(-14deg)}to{opacity:1;transform:scale(1) rotate(0)}}@media(max-width:800px){.lot-progress-grid{grid-template-columns:1fr}.history-filters>*{flex:1 1 180px}}


.next-lot-summary{margin:1rem 0 1.25rem;padding:1rem 1.15rem;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:rgba(255,255,255,.04)}
.next-lot-summary h3{margin:.2rem 0 .45rem;font-size:1.35rem}
.next-lot-summary p{margin:.2rem 0}


/* v1.4.0 — Étape de fermeture des inscriptions */
.registration-gate {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-width: 2px;
}
.registration-gate__content { display: flex; align-items: center; gap: 18px; }
.registration-gate__icon { font-size: 42px; line-height: 1; }
.registration-gate h2 { margin: 3px 0 8px; }
.registration-gate p { margin-bottom: 0; }
.registration-gate--open { border-color: rgba(239,68,68,.8); background: linear-gradient(135deg, rgba(127,29,29,.32), rgba(30,41,59,.88)); }
.registration-gate--closed { border-color: rgba(34,197,94,.7); background: linear-gradient(135deg, rgba(20,83,45,.30), rgba(30,41,59,.88)); }
.draw-locked-message { margin: 16px 0; padding: 14px 16px; border: 1px solid rgba(239,68,68,.6); border-radius: 10px; background: rgba(127,29,29,.22); font-weight: 700; }
.admin-button:disabled { cursor: not-allowed; opacity: .48; filter: grayscale(.35); }
@media (max-width: 800px) {
  .registration-gate { align-items: stretch; flex-direction: column; }
  .registration-gate form, .registration-gate button { width: 100%; }
}
