
:root{
  --bg:#0b1020;--bg2:#121a31;--panel:rgba(255,255,255,.075);--panel2:rgba(255,255,255,.12);
  --text:#f8fafc;--muted:#b8c3d9;--line:rgba(255,255,255,.14);--primary:#7c3aed;--blue:#2563eb;
  --accent:#facc15;--danger:#fb7185;--success:#34d399;--shadow:0 20px 70px rgba(0,0,0,.35);--radius:24px
}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at top left,rgba(124,58,237,.26),transparent 34rem),radial-gradient(circle at top right,rgba(34,211,238,.18),transparent 28rem),var(--bg);color:var(--text);line-height:1.6}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.container{width:min(1120px,calc(100% - 32px));margin:auto}.section{padding:78px 0}.header{position:sticky;top:0;z-index:20;background:rgba(11,16,32,.78);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.nav{height:72px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:10px;align-items:center;font-weight:900;letter-spacing:-.04em}.brand-mark{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),#22d3ee);box-shadow:var(--shadow)}.nav-links{display:flex;gap:22px;color:var(--muted);font-weight:800}.nav-links a:hover{color:var(--text)}.hero{padding-top:96px}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:42px;align-items:center}.eyebrow{color:var(--accent);text-transform:uppercase;font-size:.76rem;font-weight:900;letter-spacing:.16em}h1,h2,h3{line-height:1.08;margin:0 0 18px;letter-spacing:-.045em}h1{font-size:clamp(2.6rem,6vw,5.4rem)}h2{font-size:clamp(2rem,4vw,3.25rem)}p{color:var(--muted)}.hero-text{font-size:1.1rem;max-width:720px}.btn{border:1px solid var(--line);padding:12px 18px;border-radius:999px;color:var(--text);background:var(--panel);display:inline-flex;align-items:center;justify-content:center;font-weight:900;transition:.16s}.btn:hover{transform:translateY(-1px);background:var(--panel2)}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--blue));border:0}.btn-full{width:100%}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.panel,.card{background:linear-gradient(180deg,rgba(255,255,255,.11),rgba(255,255,255,.055));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{padding:24px}.hero-card{padding:30px;min-height:390px;display:flex;flex-direction:column;justify-content:space-between}.emoji-row{font-size:2.4rem;display:flex;gap:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stats div{background:rgba(255,255,255,.08);border:1px solid var(--line);border-radius:16px;padding:14px}.stats strong{display:block}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{padding:22px;min-height:200px}.badge{display:inline-flex;width:max-content;border-radius:999px;padding:5px 9px;font-size:.78rem;font-weight:900;background:rgba(52,211,153,.12);color:#bbf7d0}.badge.pending{background:rgba(251,191,36,.14);color:#fde68a}.badge.confirmed{background:rgba(52,211,153,.14);color:#bbf7d0}.badge.cancelled{background:rgba(251,113,133,.14);color:#fecdd3}.badge.done{background:rgba(125,211,252,.14);color:#bae6fd}.location-shell{background:linear-gradient(180deg,rgba(255,255,255,.105),rgba(255,255,255,.052));border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);padding:26px}.location-top{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:22px;margin-bottom:22px}.location-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.info-line{min-height:92px;border:1px solid var(--line);border-radius:18px;background:rgba(4,8,18,.34);padding:15px;display:flex;gap:12px}.info-icon{width:36px;height:36px;border-radius:12px;background:rgba(255,255,255,.085);display:grid;place-items:center;flex:0 0 auto}.info-line strong{display:block;color:var(--text);font-size:.84rem}.info-line span,.info-line a{color:var(--muted);font-weight:800;overflow-wrap:anywhere}.info-line a{color:var(--accent);text-decoration:underline}.map{border:1px solid var(--line);border-radius:24px;overflow:hidden}.map iframe{width:100%;height:420px;border:0;display:block}.location-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.form{display:grid;gap:16px}.row{display:grid;gap:14px}.row.two{grid-template-columns:repeat(2,1fr)}label{display:grid;gap:7px;color:var(--muted);font-weight:800}input,select{width:100%;border:1px solid var(--line);color:var(--text);background:rgba(4,8,18,.68);border-radius:14px;padding:12px 13px;outline:none}input:focus,select:focus{border-color:rgba(34,211,238,.7);box-shadow:0 0 0 4px rgba(34,211,238,.1)}.summary{border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.06);padding:16px}.narrow{max-width:760px}.center{text-align:center}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:18px}table{width:100%;min-width:720px;border-collapse:collapse}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{color:#dbeafe;background:rgba(255,255,255,.06);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}td{color:var(--muted)}.table-actions{display:flex;gap:8px;flex-wrap:wrap}.small-btn{border:1px solid var(--line);color:var(--text);background:rgba(255,255,255,.07);border-radius:10px;padding:7px 9px;font-weight:800}.dashboard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.stat{border:1px solid var(--line);background:rgba(255,255,255,.07);border-radius:18px;padding:16px}.stat strong{font-size:1.5rem;display:block}.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.footer{border-top:1px solid var(--line);padding:24px 0;color:var(--muted)}.alert{border:1px solid rgba(251,113,133,.35);background:rgba(251,113,133,.1);color:#fecdd3;padding:12px 14px;border-radius:14px}.success{border:1px solid rgba(52,211,153,.35);background:rgba(52,211,153,.1);color:#bbf7d0;padding:12px 14px;border-radius:14px}.tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.tabs a{border:1px solid var(--line);background:rgba(255,255,255,.07);color:var(--muted);border-radius:999px;padding:10px 14px;font-weight:900}.logout{border:0;color:var(--accent);background:transparent;font-weight:900;cursor:pointer}@media(max-width:900px){.hero-grid,.location-top{grid-template-columns:1fr}.cards,.dashboard-grid,.location-actions{grid-template-columns:1fr}.location-details{grid-template-columns:1fr}.row.two{grid-template-columns:1fr}.nav-links{gap:12px;font-size:.9rem}.section{padding:54px 0}.hero{padding-top:54px}.map iframe{height:340px}}

.tabs a.active{background:var(--text);color:#111827}
form{margin:0}

/* Secure standalone login */
.login-page{min-height:100vh;background:radial-gradient(circle at 18% 18%,rgba(124,58,237,.26),transparent 32rem),radial-gradient(circle at 82% 20%,rgba(34,211,238,.16),transparent 28rem),#080d1a}
.login-main{min-height:100vh;display:grid;place-items:center;padding:28px 16px}
.login-shell{width:min(520px,100%)}
.login-brand{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:28px}.login-brand>div{display:grid}.login-brand strong{font-size:1.1rem}.login-brand span:not(.brand-mark){color:var(--muted);font-size:.86rem}
.login-copy{text-align:center;margin-bottom:22px}.login-copy h1{font-size:clamp(2.15rem,7vw,3.7rem)}.login-copy p:last-child{max-width:420px;margin:0 auto}
.login-card{background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.06));border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.46);backdrop-filter:blur(22px)}
.login-card input{min-height:52px}.login-card .btn{min-height:54px;margin-top:4px}.login-security-note{text-align:center;font-size:.82rem;margin-top:18px;color:#8fa0bf}
@media(max-width:560px){.login-card{padding:20px;border-radius:22px}}


/* V5 unified modern form controls across Safari, Chrome and Firefox */
input,
select,
textarea,
button {
  -webkit-appearance: none;
  appearance: none;
}

input[type="checkbox"],
input[type="radio"] {
  -webkit-appearance: auto;
  appearance: auto;
  accent-color: var(--primary, #7c3aed);
}

input,
select,
textarea {
  min-height: 54px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(5,10,24,.72);
  color: var(--text);
  border-radius: 16px;
  padding: 0 16px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

textarea {
  padding-top: 14px;
  padding-bottom: 14px;
}

select {
  cursor: pointer;
  padding-right: 48px;
  background-image:
    linear-gradient(45deg, transparent 50%, #cbd5e1 50%),
    linear-gradient(135deg, #cbd5e1 50%, transparent 50%);
  background-position:
    calc(100% - 22px) 50%,
    calc(100% - 16px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}

select::-ms-expand { display: none; }

input:hover,
select:hover,
textarea:hover {
  border-color: rgba(255,255,255,.27);
  background-color: rgba(7,13,29,.84);
}

input:focus,
select:focus,
textarea:focus {
  border-color: rgba(56,189,248,.85);
  box-shadow: 0 0 0 4px rgba(56,189,248,.12), inset 0 1px 0 rgba(255,255,255,.04);
  background-color: rgba(7,13,29,.94);
  outline: none;
}

select option {
  color: #0f172a;
  background: #f8fafc;
}

input[type="date"] {
  color-scheme: dark;
}

input[type="date"]::-webkit-calendar-picker-indicator {
  opacity: .82;
  cursor: pointer;
  filter: invert(1) brightness(1.45);
}

.form label,
.login-card label {
  color: #d6deef;
  font-size: .91rem;
  letter-spacing: -.01em;
}

.form label > input,
.form label > select,
.login-card label > input {
  margin-top: 2px;
}

/* Modern reservation page */
.booking-modern {
  position: relative;
  overflow: hidden;
}

.booking-modern::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 85% 0%, rgba(37,99,235,.13), transparent 26rem);
}

.booking-modern > * {
  position: relative;
}

.booking-modern .summary {
  background: linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.035));
  border-color: rgba(255,255,255,.13);
  border-radius: 20px;
  padding: 20px;
}

.booking-modern .summary h3 {
  font-size: 1.12rem;
  margin-bottom: 14px;
}

.booking-modern .summary p {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin: 8px 0;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255,255,255,.075);
}

.booking-modern .summary p:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.booking-modern .btn-primary {
  min-height: 56px;
  border-radius: 17px;
  box-shadow: 0 12px 32px rgba(37,99,235,.22);
}

.booking-head {
  margin-bottom: 28px;
}

.booking-head h1 {
  font-size: clamp(2.4rem, 6vw, 4.2rem);
}

@media (max-width: 640px) {
  input,
  select,
  textarea { min-height: 52px; }
  .booking-modern { padding: 19px; }
  .booking-modern .summary p { display: block; }
}


/* Gamebook Admin v2 */
.admin-app{background:#080d1a;min-height:100vh}
.admin-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}
.admin-sidebar{position:sticky;top:0;height:100vh;padding:24px 18px;border-right:1px solid var(--line);background:linear-gradient(180deg,rgba(17,25,48,.98),rgba(8,13,26,.98));display:flex;flex-direction:column;z-index:30}
.admin-brand{display:flex;align-items:center;gap:12px;padding:0 10px 24px}
.admin-brand>div{display:grid}.admin-brand strong{font-size:1.05rem}.admin-brand small{color:var(--muted)}
.admin-nav{display:grid;gap:7px}.admin-nav-item{width:100%;display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:13px;color:#9eabc2;font-weight:800;border:1px solid transparent;background:transparent;text-align:left;cursor:pointer}
.admin-nav-item:hover{background:rgba(255,255,255,.06);color:var(--text)}
.admin-nav-item.active{background:linear-gradient(135deg,rgba(124,58,237,.28),rgba(37,99,235,.2));border-color:rgba(124,58,237,.36);color:#fff}
.admin-nav-icon{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.06);flex:0 0 auto}
.admin-sidebar-bottom{margin-top:auto;display:grid;gap:6px}.admin-logout{font:inherit}
.admin-main{min-width:0}
.admin-topbar{min-height:104px;padding:22px 32px;border-bottom:1px solid var(--line);background:rgba(8,13,26,.78);backdrop-filter:blur(18px);display:flex;justify-content:space-between;align-items:center;gap:20px;position:sticky;top:0;z-index:20}
.admin-topbar h1{font-size:clamp(1.55rem,3vw,2.35rem);margin:3px 0 0}
.admin-kicker,.panel-eyebrow{margin:0;color:var(--accent);font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;font-weight:900}
.admin-top-actions{display:flex;align-items:center;gap:12px}
.admin-search{height:44px;min-width:260px;display:flex;align-items:center;gap:9px;padding:0 13px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.055);color:var(--muted)}
.admin-search input{padding:0;border:0;background:transparent;box-shadow:none;min-height:auto}
.icon-button{width:44px;height:44px;border-radius:13px;border:1px solid var(--line);background:rgba(255,255,255,.055);color:var(--text)}
.admin-profile{display:flex;align-items:center;gap:10px;padding:5px 10px 5px 6px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.055)}
.admin-profile>div{display:grid}.admin-profile small{color:var(--muted)}.profile-dot{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--blue));font-weight:900}
.admin-content{padding:28px 32px 48px}
.admin-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}
.metric-card,.admin-panel{border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.085),rgba(255,255,255,.045));border-radius:20px;box-shadow:0 16px 50px rgba(0,0,0,.24)}
.metric-card{padding:20px;min-height:138px;display:flex;flex-direction:column;justify-content:space-between}
.metric-card.featured{background:linear-gradient(135deg,rgba(124,58,237,.28),rgba(37,99,235,.2))}
.metric-card span,.metric-card small{color:var(--muted);font-weight:700}.metric-card strong{font-size:2rem;letter-spacing:-.04em}
.admin-two-columns{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;margin-bottom:18px}
.admin-panel{padding:22px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.panel-heading h2{font-size:1.35rem;margin:4px 0 0}
.text-link{color:#c4b5fd;font-weight:800}.timeline{display:grid;gap:10px}
.timeline-item{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.035)}
.timeline-item time{font-weight:900}.timeline-item>div{display:grid}.timeline-item span{color:var(--muted)}
.occupancy-list{display:grid;gap:18px}.occupancy-item>div:first-child{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.occupancy-item span{color:var(--muted)}
.occupancy-bar{height:9px;background:rgba(255,255,255,.07);border-radius:999px;overflow:hidden}.occupancy-bar i{display:block;width:0;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),#22d3ee)}
.mb-18{margin-bottom:18px}
.ticket-print-body{font-family:Arial,sans-serif;background:#fff;color:#111;margin:0;padding:24px}
.ticket-print-body .ticket{width:320px;margin:auto}
.ticket-print-body .brand{text-align:center;border-bottom:1px dashed #777;padding-bottom:14px}
.ticket-print-body .brand h1{font-size:22px;margin:0}
.ticket-print-body .brand p{margin:4px 0;font-size:12px}
.ticket-print-body .line{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px dashed #bbb;font-size:13px}
.ticket-print-body .total{font-size:20px;font-weight:700}
.ticket-print-body .footer{text-align:center;font-size:11px;padding-top:16px}
@media print{.ticket-print-body button{display:none}.ticket-print-body{padding:0}}
.filter-row{display:flex;gap:10px}.filter-row input,.filter-row select{min-width:190px}
.empty-state{padding:30px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:15px}
.danger-soft{color:#fecdd3;border-color:rgba(251,113,133,.3)}
@media(max-width:1100px){.admin-shell{grid-template-columns:86px minmax(0,1fr)}.admin-brand>div,.admin-nav-item span:last-child,.admin-sidebar-bottom span:last-child{display:none}.admin-brand{justify-content:center;padding-inline:0}.admin-nav-item{justify-content:center;padding:10px}.admin-dashboard-grid{grid-template-columns:repeat(2,1fr)}.admin-top-actions .admin-search,.admin-profile>div{display:none}}
@media(max-width:760px){.admin-shell{display:block}.admin-sidebar{position:relative;width:100%;height:auto;flex-direction:row;overflow-x:auto;padding:12px}.admin-brand{padding:0 10px 0 0}.admin-nav{display:flex}.admin-sidebar-bottom{display:none}.admin-topbar{padding:18px;position:relative}.admin-content{padding:18px}.admin-dashboard-grid,.admin-two-columns{grid-template-columns:1fr}.admin-top-actions{display:none}.timeline-item{grid-template-columns:58px minmax(0,1fr)}.timeline-item>.badge{grid-column:2}.panel-heading{flex-direction:column}.filter-row{width:100%;flex-direction:column}.filter-row input,.filter-row select{min-width:0;width:100%}}


/* Admin v2.1 — Login refinement */
.login-page{
  overflow-x:hidden;
  position:relative;
}
.login-orb{
  position:fixed;
  border-radius:50%;
  filter:blur(12px);
  pointer-events:none;
  opacity:.72;
}
.login-orb-one{
  width:390px;
  height:390px;
  top:-150px;
  left:-90px;
  background:radial-gradient(circle,rgba(124,58,237,.34),transparent 68%);
}
.login-orb-two{
  width:440px;
  height:440px;
  right:-150px;
  bottom:-190px;
  background:radial-gradient(circle,rgba(14,165,233,.23),transparent 68%);
}
.login-grid-pattern{
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.10;
  background-image:
    linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);
  background-size:52px 52px;
  mask-image:linear-gradient(to bottom,transparent,black 20%,black 78%,transparent);
}
.login-shell{
  width:min(590px,100%);
  position:relative;
  z-index:2;
}
.login-brand{
  justify-content:flex-start;
  width:min(500px,100%);
  margin:0 auto 30px;
}
.login-brand .brand-mark{
  width:46px;
  height:46px;
  border-radius:15px;
}
.login-copy{
  width:min(560px,100%);
  margin:0 auto 25px;
}
.login-copy h1{
  font-size:clamp(2.35rem,6vw,4.25rem);
  max-width:580px;
  margin-inline:auto;
}
.login-copy p:last-child{
  max-width:520px;
  font-size:1rem;
}
.login-card{
  width:min(500px,100%);
  margin:0 auto;
  padding:32px;
  border-radius:30px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.135),rgba(255,255,255,.055));
  border-color:rgba(255,255,255,.17);
  box-shadow:
    0 34px 110px rgba(0,0,0,.52),
    inset 0 1px 0 rgba(255,255,255,.08);
}
.login-input-wrap{
  position:relative;
  display:block;
}
.login-input-wrap input{
  padding-left:48px;
  padding-right:88px;
}
.login-input-icon{
  position:absolute;
  left:17px;
  top:50%;
  transform:translateY(-50%);
  color:#91a2bf;
  font-size:1.05rem;
  z-index:1;
}
.password-toggle{
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  border:0;
  border-radius:10px;
  background:rgba(255,255,255,.075);
  color:#dce5f7;
  padding:7px 10px;
  font-size:.76rem;
  font-weight:850;
}
.password-toggle:hover{
  background:rgba(255,255,255,.13);
}
.login-submit{
  position:relative;
  min-height:58px!important;
  overflow:hidden;
  box-shadow:0 18px 44px rgba(37,99,235,.26);
}
.login-submit::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(110deg,transparent 15%,rgba(255,255,255,.18) 45%,transparent 75%);
  transform:translateX(-130%);
  transition:transform .6s ease;
}
.login-submit:hover::before{
  transform:translateX(130%);
}
.login-submit:disabled{
  cursor:wait;
  opacity:.82;
}
.login-spinner{
  display:none;
  width:18px;
  height:18px;
  border:2px solid rgba(255,255,255,.35);
  border-top-color:#fff;
  border-radius:50%;
  animation:loginSpin .75s linear infinite;
}
.login-submit.is-loading .login-spinner{
  display:inline-block;
}
@keyframes loginSpin{to{transform:rotate(360deg)}}
.login-trust-row{
  width:min(570px,100%);
  margin:20px auto 0;
  display:flex;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
}
.login-trust-row span{
  color:#91a2bf;
  font-size:.77rem;
  padding:6px 10px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:999px;
  background:rgba(255,255,255,.035);
}

/* Admin v2.1 — Dashboard polish */
.admin-topbar{
  box-shadow:0 10px 40px rgba(0,0,0,.12);
}
.metric-card{
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
.metric-card:hover{
  transform:translateY(-2px);
  border-color:rgba(124,58,237,.34);
}
.metric-card strong{
  font-size:2.2rem;
}
.admin-panel{
  overflow:hidden;
}
.table-wrap{
  background:rgba(4,8,18,.22);
}
th{
  white-space:nowrap;
}
td small{
  color:#8998b3;
}
.reservation-empty{
  display:grid;
  gap:5px;
}
.reservation-empty strong{
  color:var(--text);
  font-size:1.05rem;
}
.reservation-empty span{
  color:var(--muted);
}

@media(max-width:600px){
  .login-shell{width:100%}
  .login-brand{justify-content:center}
  .login-card{padding:22px}
  .login-trust-row{display:grid;text-align:center}
}

/* Admin v2.2 — Login title refinement */
.login-copy{margin-bottom:20px}
.login-copy h1{font-size:clamp(2rem,4.4vw,3.15rem);line-height:1.02;max-width:520px;letter-spacing:-.045em}
.login-copy p:last-child{max-width:440px;font-size:.96rem;line-height:1.55}
.login-card{margin-top:2px}


/* Admin v2.3 — Fully aligned, simplified login */
.login-main{
  display:grid;
  place-items:center;
  min-height:100vh;
  padding:32px 18px;
}
.login-shell{
  width:min(520px,100%);
  margin:0 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.login-brand{
  width:100%;
  justify-content:center;
  flex-direction:column;
  gap:10px;
  margin:0 0 24px;
}
.login-brand .brand-mark{
  width:48px;
  height:48px;
  border-radius:15px;
}
.login-brand strong{
  font-size:1.15rem;
  letter-spacing:-.02em;
}
.login-copy{
  width:100%;
  margin:0 0 22px;
  text-align:center;
}
.login-copy h1{
  margin:0 0 10px;
  font-size:clamp(2rem,5vw,2.75rem);
  line-height:1.05;
  max-width:none;
  letter-spacing:-.045em;
}
.login-copy p{
  margin:0 auto;
  max-width:390px;
  font-size:.98rem;
  line-height:1.55;
  color:var(--muted);
}
.login-card{
  width:100%;
  max-width:500px;
  margin:0 auto;
  text-align:left;
  padding:30px;
}
.login-card label{
  text-align:left;
}
.login-footer{
  margin:18px 0 0;
  color:#8290aa;
  font-size:.8rem;
  text-align:center;
}
.login-trust-row{
  display:none!important;
}
@media(max-width:560px){
  .login-main{padding:22px 14px}
  .login-card{padding:22px}
}

/* Gamebook Admin v3.2 — genuine modern SaaS redesign */
:root{
  --admin-bg:#0a0d14;
  --admin-surface:#111620;
  --admin-surface-2:#151b27;
  --admin-border:rgba(255,255,255,.075);
  --admin-text:#f4f7fb;
  --admin-muted:#8d98aa;
  --admin-accent:#7c5cff;
  --admin-accent-2:#4f8cff;
}
.admin-app{background:var(--admin-bg);color:var(--admin-text)}
.admin-shell{grid-template-columns:232px minmax(0,1fr)}
.admin-sidebar{padding:20px 14px;background:#0c1018;border-right:1px solid var(--admin-border);box-shadow:none}
.admin-brand{padding:0 10px 22px;gap:10px}
.admin-brand .brand-mark{width:34px;height:34px;border-radius:10px;box-shadow:none;font-size:.82rem}
.admin-brand strong{font-size:.96rem;letter-spacing:-.025em}.admin-brand small{font-size:.72rem;color:#697386}
.admin-nav{gap:4px}
.admin-nav-item{min-height:42px;padding:9px 10px;border-radius:10px;font-size:.86rem;font-weight:650;color:#8792a4;transition:.16s ease}
.admin-nav-item:hover{background:#131925;color:#eaf0f8}
.admin-nav-item.active{background:#1a2030;border-color:rgba(124,92,255,.18);color:#fff;box-shadow:inset 3px 0 0 var(--admin-accent)}
.admin-nav-icon{width:24px;height:24px;border-radius:7px;background:transparent;color:currentColor}
.admin-nav-icon svg{width:18px;height:18px;display:block;stroke-width:1.8}
.admin-sidebar-bottom{padding-top:16px;border-top:1px solid var(--admin-border)}
.admin-topbar{min-height:74px;padding:14px 26px;background:rgba(10,13,20,.88);border-color:var(--admin-border);backdrop-filter:blur(16px)}
.admin-topbar h1{font-size:1.25rem;margin:1px 0 0;letter-spacing:-.03em;font-weight:720}
.admin-kicker{font-size:.64rem;color:#727d90;letter-spacing:.1em}
.admin-top-actions{gap:9px}.admin-search{height:38px;min-width:220px;border-radius:10px;background:#101620;border-color:var(--admin-border);font-size:.82rem}
.admin-search input{font-size:.82rem}.icon-button{width:38px;height:38px;border-radius:10px;background:#101620;border-color:var(--admin-border)}
.admin-profile{padding:4px 9px 4px 4px;border-radius:10px;background:#101620;border-color:var(--admin-border)}
.admin-profile strong{font-size:.8rem}.admin-profile small{font-size:.68rem}.profile-dot{width:30px;height:30px;border-radius:8px;font-size:.75rem}
.admin-content{padding:24px 26px 42px;max-width:1500px;width:100%}
.admin-content>main>.section{padding:0}.admin-content>main>.section>.container{width:100%;max-width:none;margin:0}
.admin-content>main>.section>.container>h1,.admin-content>main>.section>.container>.eyebrow,.admin-content .tabs{display:none}
.admin-content .panel,.admin-panel,.metric-card{background:var(--admin-surface);border:1px solid var(--admin-border);box-shadow:0 10px 30px rgba(0,0,0,.16);border-radius:14px}
.admin-content .panel{padding:18px}.admin-content .panel h3{font-size:.95rem;letter-spacing:-.02em;margin-bottom:16px}
.admin-dashboard-grid{gap:12px;margin-bottom:14px}.metric-card{min-height:112px;padding:16px}.metric-card.featured{background:linear-gradient(145deg,#5f46e8,#3478ee);border-color:transparent}.metric-card span,.metric-card small{font-size:.75rem}.metric-card strong{font-size:1.65rem}
.admin-two-columns{gap:14px;margin-bottom:14px}.admin-panel{padding:18px}.panel-heading{margin-bottom:14px}.panel-heading h2{font-size:1.05rem}.panel-eyebrow{font-size:.62rem;color:#7c8aa0}
.timeline{gap:8px}.timeline-item{padding:11px;border-radius:10px;background:var(--admin-surface-2);border-color:var(--admin-border);font-size:.82rem}
.occupancy-list{gap:14px}.occupancy-bar{height:6px}.occupancy-bar i{background:linear-gradient(90deg,var(--admin-accent),var(--admin-accent-2))}
.row{gap:12px}.row.two{gap:12px}.form{gap:13px}.form label{font-size:.76rem;color:#aeb7c6;font-weight:650}
.admin-content input,.admin-content select,.admin-content textarea{min-height:42px;border-radius:9px;padding:0 12px;background:#0d121b;border-color:var(--admin-border);font-size:.84rem}
.admin-content input:focus,.admin-content select:focus,.admin-content textarea:focus{border-color:rgba(124,92,255,.75);box-shadow:0 0 0 3px rgba(124,92,255,.13)}
.admin-content .btn{min-height:42px;border-radius:9px;padding:9px 14px;font-size:.82rem}.admin-content .btn-primary{background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2));box-shadow:none}
.table-wrap{border-radius:10px;border-color:var(--admin-border);background:#0e131c}table{min-width:680px}th,td{padding:11px 12px;border-color:var(--admin-border)}th{font-size:.66rem;letter-spacing:.08em;background:#131925;color:#8f9bad}td{font-size:.8rem;color:#b4bdcb}.small-btn{border-radius:8px;padding:6px 9px;font-size:.72rem;background:#191f2c;border-color:var(--admin-border)}
.badge{padding:4px 8px;font-size:.66rem;border-radius:999px}.text-link{font-size:.76rem;color:#9f8cff}
.empty-state{padding:24px;border-radius:10px;font-size:.82rem}
@media(max-width:1100px){.admin-shell{grid-template-columns:74px minmax(0,1fr)}.admin-sidebar{padding-inline:10px}.admin-content{padding:20px}.admin-topbar{padding-inline:20px}}
@media(max-width:760px){.admin-sidebar{padding:9px}.admin-topbar{padding:14px}.admin-content{padding:14px}.admin-topbar h1{font-size:1.1rem}}

/* Gamebook Admin v4.0 — refined design system */
:root{--gb-bg:#0b0f16;--gb-card:#121823;--gb-card-2:#161d2a;--gb-line:rgba(255,255,255,.075);--gb-text:#f7f9fc;--gb-muted:#8994a7;--gb-purple:#7c5cff;--gb-blue:#3d8bfd;--gb-green:#35c98f;--gb-red:#ff6b78}
.admin-app{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 82% -10%,rgba(80,98,255,.11),transparent 26%),var(--gb-bg)}
.admin-sidebar{background:rgba(12,16,24,.96)}.admin-content{padding-top:28px}.admin-topbar{border-bottom-color:var(--gb-line)}
.users-page{display:grid;gap:18px}.page-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.page-toolbar h2{font-size:1.45rem;margin:4px 0 4px;letter-spacing:-.035em}.page-toolbar p{margin:0;color:var(--gb-muted);font-size:.85rem}.page-toolbar .btn{width:auto}
.users-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.users-stats article{background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.018));border:1px solid var(--gb-line);border-radius:14px;padding:16px 18px}.users-stats span{display:block;color:var(--gb-muted);font-size:.75rem}.users-stats strong{display:block;margin-top:5px;font-size:1.45rem;letter-spacing:-.04em}
.users-card{background:var(--gb-card);border:1px solid var(--gb-line);border-radius:16px;overflow:hidden;box-shadow:0 22px 60px rgba(0,0,0,.2)}.users-filters{display:grid;grid-template-columns:minmax(260px,1fr) 180px 180px;gap:10px;padding:14px;border-bottom:1px solid var(--gb-line)}.filter-search{display:flex;align-items:center;gap:8px;background:#0d131c;border:1px solid var(--gb-line);border-radius:10px;padding:0 12px}.filter-search input{border:0!important;background:transparent!important;box-shadow:none!important;width:100%;padding:0!important}.users-filters select{min-height:40px!important}
.users-table{min-width:920px}.users-table td{vertical-align:middle}.user-cell{display:flex;align-items:center;gap:11px}.user-cell>div{display:grid;gap:2px}.user-cell strong{font-size:.82rem;color:var(--gb-text)}.user-cell small{color:var(--gb-muted);font-size:.72rem}.user-avatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,var(--gb-purple),var(--gb-blue));font-size:.7rem;font-weight:800;color:#fff}.role-pill,.status-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 9px;font-size:.68rem;font-weight:700}.role-pill{background:rgba(124,92,255,.11);color:#b7a9ff;border:1px solid rgba(124,92,255,.2)}.role-pill.owner{background:rgba(255,190,75,.1);color:#ffd284;border-color:rgba(255,190,75,.18)}.role-pill.manager{background:rgba(61,139,253,.1);color:#8bbcff;border-color:rgba(61,139,253,.18)}.status-pill i{width:6px;height:6px;border-radius:50%;background:currentColor}.status-pill.on{color:#62dbaa;background:rgba(53,201,143,.09)}.status-pill.off{color:#ff8b95;background:rgba(255,107,120,.09)}.last-login{color:#a8b1c0;font-size:.74rem}.protected-label{font-size:.7rem;color:#748095}.user-actions{display:flex;justify-content:flex-end;gap:5px}.user-actions form{margin:0}.icon-action{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--gb-line);border-radius:8px;background:#171e2a;color:#aeb8c8;cursor:pointer}.icon-action:hover{color:#fff;border-color:rgba(124,92,255,.4)}.icon-action.danger:hover{color:#ff8b95;border-color:rgba(255,107,120,.35)}.users-empty{padding:38px;text-align:center;color:var(--gb-muted)}
.drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:.2s;z-index:79}.user-drawer{position:fixed;top:0;right:0;width:min(440px,100%);height:100dvh;background:#101620;border-left:1px solid var(--gb-line);z-index:80;transform:translateX(102%);transition:.25s ease;box-shadow:-30px 0 80px rgba(0,0,0,.35);padding:24px;overflow:auto}.user-drawer.open{transform:none}.drawer-backdrop.open{opacity:1;visibility:visible}.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.drawer-head h3{font-size:1.25rem;margin:4px 0 0}.drawer-head button{border:0;background:#1a2230;color:#fff;width:34px;height:34px;border-radius:9px;font-size:1.4rem}.drawer-form{display:grid;gap:15px}.drawer-form label{display:grid;gap:7px;color:#b7c0cf;font-size:.76rem;font-weight:700}.drawer-form input,.drawer-form select{width:100%}.permission-note{display:grid;gap:4px;padding:13px;border:1px solid rgba(124,92,255,.18);background:rgba(124,92,255,.06);border-radius:10px}.permission-note strong{font-size:.76rem}.permission-note span{font-size:.72rem;line-height:1.5;color:#909bad}.toast-inline{padding:12px 14px;border-radius:10px;font-size:.8rem;border:1px solid}.toast-inline.success{background:rgba(53,201,143,.08);border-color:rgba(53,201,143,.2);color:#77e2b8}.toast-inline.error{background:rgba(255,107,120,.08);border-color:rgba(255,107,120,.2);color:#ff9aa3}
@media(max-width:850px){.users-filters{grid-template-columns:1fr 1fr}.filter-search{grid-column:1/-1}.users-stats{grid-template-columns:1fr}.page-toolbar{align-items:flex-start;flex-direction:column}.page-toolbar .btn{width:100%}}
.drawer-check{display:flex!important;align-items:center;gap:10px;padding:12px 13px;border:1px solid var(--gb-line);border-radius:10px;background:#0d131c}.drawer-check input{width:16px!important;height:16px!important;min-height:auto!important;margin:0}.drawer-check span{font-size:.78rem;color:#c4ccda}

.booking-confirmation-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}.booking-confirmation-backdrop{position:absolute;inset:0;background:rgba(2,6,23,.78);backdrop-filter:blur(10px)}.booking-confirmation-card{position:relative;width:min(560px,100%);max-height:calc(100vh - 40px);overflow:auto;background:linear-gradient(180deg,rgba(22,35,67,.98),rgba(8,15,32,.98));border:1px solid rgba(125,211,252,.28);border-radius:28px;padding:30px;box-shadow:0 30px 90px rgba(0,0,0,.55);text-align:center}.booking-confirmation-icon{width:64px;height:64px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;font-size:2rem;font-weight:900;color:#052e16;background:linear-gradient(135deg,#86efac,#22d3ee);box-shadow:0 12px 38px rgba(34,211,238,.25)}.booking-confirmation-card h2{font-size:clamp(1.7rem,4vw,2.4rem)}.booking-confirmation-card>p{margin:8px auto 18px;max-width:460px}.booking-confirmation-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0;text-align:left}.booking-confirmation-summary div{border:1px solid var(--line);background:rgba(255,255,255,.055);border-radius:16px;padding:13px}.booking-confirmation-summary span{display:block;color:var(--muted);font-size:.8rem;font-weight:800}.booking-confirmation-summary strong{display:block;color:var(--text);margin-top:3px}.booking-confirmation-note{color:#dbeafe!important}.booking-confirmation-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.booking-confirmation-actions .btn{border-radius:14px}@media(max-width:560px){.booking-confirmation-card{padding:24px 18px}.booking-confirmation-summary,.booking-confirmation-actions{grid-template-columns:1fr}}

/* v4.7 — Caisse */
.cash-btn{background:linear-gradient(135deg,#0ea5e9,#22c55e);border-color:transparent;color:#fff}.cash-created{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.28);color:#86efac}.cash-page{display:grid;gap:18px}.cash-metrics{margin-bottom:0}.cash-page tr:target{outline:2px solid rgba(34,211,238,.7);outline-offset:-2px;background:rgba(34,211,238,.06)}

/* Public mobile navigation */
.nav-toggle{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.07);padding:0;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:var(--text);cursor:pointer}
.nav-toggle span{display:block;width:19px;height:2px;border-radius:2px;background:currentColor;transition:transform .18s ease,opacity .18s ease}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:760px){
  .header{background:rgba(8,13,28,.94)}
  .nav{height:66px;position:relative}
  .brand{gap:9px;font-size:1rem;white-space:nowrap}
  .brand-mark{width:38px;height:38px;border-radius:11px}
  .nav-toggle{display:flex;margin-left:auto;flex:0 0 auto}
  .nav-links{position:absolute;left:0;right:0;top:calc(100% + 10px);display:grid;gap:4px;padding:10px;background:rgba(13,20,40,.98);border:1px solid var(--line);border-radius:18px;box-shadow:0 22px 55px rgba(0,0,0,.45);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:50}
  .nav-links.open{opacity:1;visibility:visible;transform:translateY(0)}
  .nav-links a,.nav-links form{width:100%}
  .nav-links a,.nav-links .logout{display:flex;width:100%;min-height:46px;align-items:center;padding:10px 13px;border-radius:12px;color:#dbe4f5;font-size:.96rem;font-weight:800}
  .nav-links a:hover,.nav-links .logout:hover{background:rgba(255,255,255,.07);color:#fff}
}

/* v5.0 — confirmation de réservation intégrée à la page */
.booking-modern.booking-complete{padding:0;overflow:hidden}
.booking-confirmation-inline{padding:32px;text-align:center;background:linear-gradient(180deg,rgba(22,35,67,.98),rgba(8,15,32,.98));border-radius:inherit}
.booking-confirmation-inline h2{font-size:clamp(1.7rem,4vw,2.4rem);margin-bottom:8px}
.booking-confirmation-inline>p{margin:8px auto 18px;max-width:500px}
@media(max-width:560px){.booking-confirmation-inline{padding:24px 18px}}

/* Gamebook v5.5.3 — internal reservation control */
.reservation-timer{margin-top:7px;padding:6px 8px;border-radius:8px;font-size:.7rem;font-weight:900;white-space:nowrap;width:max-content;max-width:100%}
.timer-future{background:rgba(52,211,153,.12);color:#86efac}.timer-running{background:rgba(59,130,246,.14);color:#93c5fd}.timer-warning{background:rgba(245,158,11,.16);color:#fcd34d}.timer-ended{background:rgba(239,68,68,.14);color:#fca5a5}
.reservation-conflict{margin-top:8px;padding:8px 10px;border:1px solid rgba(245,158,11,.45);background:rgba(245,158,11,.1);border-radius:9px;color:#fcd34d;font-size:.7rem;line-height:1.45}.reservation-conflict.confirmed-conflict{border-color:rgba(239,68,68,.55);background:rgba(239,68,68,.11);color:#fca5a5}.reservation-conflict ul{margin:5px 0 0;padding-left:17px}.conflict-confirm{border-color:rgba(245,158,11,.7);color:#fcd34d}
.badge.contacted{background:rgba(59,130,246,.14);color:#bfdbfe}.badge.expired{background:rgba(148,163,184,.14);color:#cbd5e1}

/* Anti-spam honeypot field: hidden from real visitors, visible to naive bots */
.hp-field{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden}

.pending-badge{background:rgba(245,158,11,.14);color:#fcd34d;cursor:default;border-color:rgba(245,158,11,.3)}

.field-hint{font-size:.78rem;color:#9fb0c9;margin:-6px 0 6px;min-height:1em}

/* Statistiques */
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:860px){.stats-grid{grid-template-columns:1fr}}
.stat-card{border:1px solid var(--gb-line);background:#0d131c;border-radius:14px;padding:18px}
.stat-card h3{margin:0 0 14px;font-size:.95rem}
.stat-bars{display:flex;flex-direction:column;gap:9px}
.stat-bar-row{display:grid;grid-template-columns:56px 1fr 34px;align-items:center;gap:10px}
.stat-bar-label{font-size:.72rem;color:#8b94a7}
.stat-bar-value{font-size:.72rem;color:#c4ccda;text-align:right}

.stats-summary{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px}
.stat-mini{flex:1;min-width:150px;border:1px solid var(--gb-line);background:#0d131c;border-radius:14px;padding:14px 16px}
.stat-mini span{display:block;font-size:.72rem;color:#8b94a7;margin-bottom:6px}
.stat-mini strong{font-size:1.3rem;font-weight:800;display:block}
.stat-mini small{color:#7d879c;font-size:.7rem}
.svg-chart{width:100%;overflow-x:auto}
.svg-chart svg{display:block;min-width:280px}

.status-form{display:inline-flex}
.status-select{width:auto;min-height:auto;padding:6px 26px 6px 9px;font-size:.72rem;border-radius:8px;background-color:#191f2c;border-color:var(--admin-border);color:var(--text);font-weight:800;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238f9bad' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center}
.status-select.conflict-confirm{border-color:rgba(245,158,11,.7);color:#fcd34d}

.view-as-form select{min-height:38px!important;padding:6px 26px 6px 10px;font-size:.76rem;border-radius:9px;width:auto}
.view-as-banner{margin:0 24px 16px;padding:11px 16px;border-radius:12px;background:rgba(124,92,255,.12);border:1px solid rgba(124,92,255,.3);color:#d9d4ff;font-size:.82rem}
.view-as-banner a{color:#fff;font-weight:800;text-decoration:underline;margin-left:6px}

.cash-filters{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.tab-pills{display:flex;gap:8px;flex-wrap:wrap}
.tab-pill{border:1px solid var(--gb-line);background:#0d131c;color:#9aa5bd;border-radius:999px;padding:7px 14px;font-size:.78rem;font-weight:700}
.tab-pill.active{background:var(--primary,#7c5cff);color:#fff;border-color:transparent}
.cash-custom-range{display:flex;align-items:end;gap:8px;flex-wrap:wrap}
.cash-custom-range label{display:flex;flex-direction:column;gap:4px;font-size:.68rem;color:#8b94a7}
.cash-custom-range input{min-height:36px!important;padding:6px 9px;font-size:.76rem;border-radius:8px}
@media(max-width:760px){.cash-filters{flex-direction:column;align-items:stretch}}

.sell-product-form,.product-add-form{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.sell-product-form select{flex:1;min-width:180px}
.sell-product-form input[type="number"],.product-add-form input[type="number"]{width:90px}
.product-add-form input[type="text"]{flex:1;min-width:160px}

.purchase-form{display:flex;gap:14px;align-items:end;flex-wrap:wrap}
.purchase-form label{display:flex;flex-direction:column;gap:5px;font-size:.72rem;color:#8b94a7;min-width:140px}
.stock-adjust-form{display:flex;gap:6px;align-items:center}
.stock-adjust-form input{width:70px;min-height:34px!important;padding:5px 8px;font-size:.76rem;border-radius:7px}

.product-rename-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.product-rename-form input[type="text"]{width:120px;min-height:34px!important;padding:5px 8px;font-size:.76rem;border-radius:7px}
.product-rename-form input[type="number"]{width:70px;min-height:34px!important;padding:5px 8px;font-size:.76rem;border-radius:7px}

.discounts-form{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.discount-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;max-width:420px;border:1px solid var(--gb-line);background:#0d131c;border-radius:12px;padding:12px 16px}
.discount-row-label{font-size:.85rem;color:#c4ccda}
.discount-row label{display:flex;align-items:center;gap:8px;font-size:.72rem;color:#8b94a7}
.discount-input-wrap{display:flex;align-items:center;gap:6px;background:#191f2c;border:1px solid var(--gb-line);border-radius:8px;padding:0 10px}
.discount-input-wrap input{width:50px;min-height:34px!important;padding:5px 0;border:0!important;background:transparent!important;text-align:right}

.row-discount-form{display:flex;gap:5px;align-items:center}
.row-discount-form input{width:62px;min-height:34px!important;padding:5px 7px;font-size:.76rem;border-radius:7px}
.discount-applied{color:#86efac}

.reschedule-form{display:flex;flex-direction:column;gap:8px;margin-top:10px;padding:10px;border:1px solid var(--gb-line);border-radius:10px;background:#0d131c;max-width:220px}
.reschedule-form label{display:flex;flex-direction:column;gap:4px;font-size:.68rem;color:#8b94a7}
.reschedule-form input{min-height:34px!important;padding:5px 8px;font-size:.76rem;border-radius:7px}

.reschedule-popover{position:fixed;inset:0;z-index:60;display:grid;place-items:center}
.reschedule-popover[hidden]{display:none}
.reschedule-backdrop{position:absolute;inset:0;background:rgba(5,8,14,.72)}
.reschedule-popover .reschedule-form{position:relative;z-index:1;display:flex;flex-direction:column;gap:10px;padding:18px;border:1px solid var(--gb-line);border-radius:14px;background:#0d131c;width:260px;box-shadow:0 20px 50px rgba(0,0,0,.4)}
.reschedule-popover h4{margin:0 0 4px;font-size:.9rem}
.reschedule-form label{display:flex;flex-direction:column;gap:4px;font-size:.7rem;color:#8b94a7}
.reschedule-form input{min-height:38px!important;padding:6px 9px;font-size:.8rem;border-radius:8px}
.reschedule-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}

.new-reservation-form{width:320px!important}
.new-reservation-form select{min-height:40px!important;padding:6px 9px;font-size:.8rem;border-radius:8px}

/* Fix: any label/element explicitly set to hidden must stay hidden, even inside forms with their own display rules */
form label[hidden],[hidden]{display:none!important}

.vouchers-list{display:flex;flex-direction:column;gap:10px}
.voucher-card{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid rgba(124,92,255,.35);background:rgba(124,92,255,.08);border-radius:12px;padding:12px 16px}

.lounge-open-form{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.lounge-open-form select,.lounge-open-form input{min-height:40px!important;padding:6px 10px;font-size:.82rem;border-radius:9px}
.lounge-sessions{display:flex;flex-direction:column;gap:10px}
.lounge-card{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--gb-line);background:#0d131c;border-radius:12px;padding:14px 16px}
.lounge-timer{margin-top:6px;font-size:.76rem;color:#86efac;font-weight:700}

.ledger-forms{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:18px 0}
.ledger-form{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--line,#e5e7eb);border-radius:14px}
.ledger-type{padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#eef2ff}
.ledger-expense{background:#fee2e2;color:#991b1b}
.ledger-retrait{background:#fef3c7;color:#92400e}
.ledger-fond{background:#dcfce7;color:#166534}
.new-reservation-form{width:440px!important;max-width:calc(100vw - 32px)!important}
.new-reservation-form .row.two{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px}
.new-reservation-form input,.new-reservation-form select{min-width:0;width:100%}
.new-reservation-form input[data-time24]{text-align:center;letter-spacing:.05em}
.reschedule-form input[data-time24]{min-width:0}

.chart-tip{position:fixed;z-index:9999;pointer-events:none;background:#0b1020;color:#fff;border:1px solid rgba(124,155,255,.5);padding:6px 10px;border-radius:8px;font-size:.78rem;font-weight:600;box-shadow:0 8px 24px rgba(0,0,0,.45);white-space:nowrap}
.chart-tip[hidden]{display:none}
.svg-chart svg [data-tip]{cursor:crosshair}
.stats-period{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;margin:12px 0 4px}
.stats-period .tab-pills{display:flex;flex-wrap:wrap;gap:8px}
.stats-period .cash-custom-range{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.stats-period .cash-custom-range label{display:flex;flex-direction:column;gap:4px;font-size:.7rem}

.sub-sell-form input,.sub-sell-form select{min-width:160px}
.sub-list{display:grid;gap:10px;margin-top:10px}
.sub-card{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border:1px solid var(--gb-line);background:#0d131c;border-radius:12px;padding:14px}
.sub-card.running{border-color:rgba(53,201,143,.5);box-shadow:0 0 0 1px rgba(53,201,143,.2) inset}
.sub-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sub-actions form{margin:0}
.sub-balance{margin-top:6px;font-size:.82rem;color:#c8d0e0}
.sub-timer{margin-top:8px;display:flex;gap:16px;flex-wrap:wrap;font-weight:800;font-variant-numeric:tabular-nums}
.sub-timer-used{color:#86efac}
.sub-timer-left{color:#fde68a}
.sub-timer.empty .sub-timer-left{color:#fca5a5}
.wa-btn{background:#128c4a!important;border-color:#128c4a!important;color:#fff!important}
.plan-row-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.plan-row-form input,.plan-row-form select{min-height:36px!important;padding:5px 9px;font-size:.8rem;width:auto;max-width:170px}

/* Formulaires de vente rapide alignés */
.sell-product-form,.product-add-form{display:grid;gap:10px;align-items:stretch}
.sell-product-form{grid-template-columns:minmax(0,1fr) 90px 200px}
.sell-product-form.sell-service-form{grid-template-columns:minmax(0,1fr) 200px}
.product-add-form{grid-template-columns:minmax(0,1fr) 130px 200px}
.sell-product-form select,.sell-product-form input,.product-add-form input{min-width:0;width:100%;min-height:44px}
.sell-product-form .btn,.product-add-form .btn{width:100%;min-height:44px;border-radius:12px;white-space:nowrap}
@media(max-width:700px){.sell-product-form,.sell-product-form.sell-service-form,.product-add-form{grid-template-columns:1fr}}
/* Choix multiples d'espaces (cases à cocher) */
.chips-field{display:grid;gap:8px}
.chips-title{font-size:.76rem;color:#aeb7c6;font-weight:650}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;display:inline-flex!important;cursor:pointer}
.chip input{position:absolute;opacity:0;width:0!important;height:0;min-height:0!important;padding:0;border:0;pointer-events:none}
.chip span{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid var(--gb-line,rgba(255,255,255,.14));border-radius:999px;background:#0d131c;color:#aeb7c6;font-size:.8rem;font-weight:700;transition:.15s}
.chip span::before{content:"";width:14px;height:14px;border-radius:4px;border:1.5px solid #5d6882;background:transparent;transition:.15s}
.chip:hover span{border-color:rgba(124,155,255,.6)}
.chip input:checked + span{background:rgba(124,92,255,.18);border-color:rgba(124,92,255,.7);color:#fff}
.chip input:checked + span::before{background:#7c5cff;border-color:#7c5cff;box-shadow:inset 0 0 0 2px #0d131c}
.chip input:focus-visible + span{outline:2px solid #7c9bff;outline-offset:2px}
/* Même grille pour "Vendre" et "Encaisser le service": colonnes parfaitement alignées */
.sell-product-form.sell-service-form{grid-template-columns:minmax(0,1fr) 90px 200px}
.sell-product-form.sell-service-form select{grid-column:1 / span 2}
.sell-product-form.sell-service-form .btn{grid-column:3}
.sell-product-form input[type="number"]{text-align:center;padding-left:8px;padding-right:8px}
@media(max-width:700px){.sell-product-form.sell-service-form{grid-template-columns:1fr}.sell-product-form.sell-service-form select,.sell-product-form.sell-service-form .btn{grid-column:auto}}

/* Blocs de vente séparés */
.sell-block{border:1px solid var(--gb-line,rgba(255,255,255,.12));background:rgba(255,255,255,.025);border-radius:14px;padding:16px;margin-top:14px}
.sell-block-title{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#8fa0c0;margin-bottom:10px}
.sell-block .muted{margin:0}

.lounge-rule{display:block;margin-top:6px;color:#8b94a7;font-size:.7rem;line-height:1.4;max-width:520px}

.lounge-actions{display:flex;flex-direction:column;gap:8px;align-items:stretch;min-width:170px}
.lounge-actions form{margin:0}
.lounge-actions .small-btn{width:100%;min-height:38px}
.pause-btn{background:rgba(251,191,36,.12)!important;border-color:rgba(251,191,36,.45)!important;color:#fde68a!important}
.lounge-timer.paused{color:#fde68a}
.lounge-card{flex-wrap:wrap}

.sub-adjust{position:relative}
.sub-adjust summary{cursor:pointer;list-style:none;display:inline-block}
.sub-adjust summary::-webkit-details-marker{display:none}
.sub-adjust-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px;padding:10px;border:1px solid var(--gb-line);border-radius:10px;background:#0d131c}
.sub-adjust-form span{font-size:.74rem;color:#aeb7c6;width:100%}
.sub-adjust-form label{display:flex;align-items:center;gap:6px;font-size:.78rem;color:#aeb7c6}
.sub-adjust-form input{width:80px;min-height:36px!important;padding:5px 8px;text-align:center}
