/* =====================================================================
   L2BAZA Design System V1 — Shared components
   Version: 1.5.33
   New components use the l2ds-* namespace. Existing public controls only
   receive safe accessibility/readability rules here; page-specific visuals
   remain in their current styles until migrated deliberately.
   ===================================================================== */

body.l2ds-v1{
  color:var(--l2-color-text);
  font-family:var(--l2-font-ui);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* Shared focus behavior. Keyboard focus must be visible on every page. */
body.l2ds-v1 :is(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:1px solid var(--l2-color-gold-hi);
  outline-offset:2px;
  box-shadow:var(--l2-shadow-focus);
}

body.l2ds-v1 :is(button,input,select,textarea){font:inherit}
body.l2ds-v1 :is(button,[role="button"]){touch-action:manipulation}

/* Readability floor for generic public controls. Highly specific historical
   page styles may still override this until the page is migrated. */
body.l2ds-v1 main :is(input,select,textarea){
  min-height:var(--l2-control-sm);
}
body.l2ds-v1 main textarea{min-height:104px}
body.l2ds-v1 main :is(input,select,textarea)::placeholder{color:#747b7d;opacity:1}

/* Canonical components for all new/refactored markup. */
.l2ds-panel{
  border:1px solid var(--l2-color-line);
  border-radius:var(--l2-radius-sm);
  background:linear-gradient(180deg,var(--l2-color-panel),var(--l2-color-panel-deep));
  box-shadow:var(--l2-shadow-panel);
}

.l2ds-title{
  margin:0;
  color:#ead09b;
  font-family:var(--l2-font-display);
  font-weight:500;
  line-height:1.08;
}
.l2ds-title--page{font-size:clamp(34px,2.4vw,var(--l2-title-xl))}
.l2ds-title--section{font-size:clamp(20px,1.35vw,var(--l2-title-md))}

.l2ds-muted{color:var(--l2-color-muted)}

.l2ds-btn{
  min-height:var(--l2-control-md);
  padding:0 var(--l2-space-4);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--l2-space-2);
  border:1px solid transparent;
  border-radius:var(--l2-radius-xs);
  font:700 var(--l2-text-xs)/1 var(--l2-font-ui);
  letter-spacing:.25px;
  text-decoration:none;
  cursor:pointer;
  transition:transform var(--l2-motion-fast) var(--l2-ease),filter var(--l2-motion-fast) var(--l2-ease),border-color var(--l2-motion-fast) var(--l2-ease);
}
.l2ds-btn:hover{filter:brightness(1.08)}
.l2ds-btn:active{transform:translateY(1px)}
.l2ds-btn--primary{
  color:#fff7e7;
  border-color:#c58b35;
  background:linear-gradient(180deg,#b87922,#74420d);
  text-shadow:0 2px 3px #2c1602;
}
.l2ds-btn--secondary{
  color:#f6e8ff;
  border-color:#7e3aa2;
  background:linear-gradient(180deg,#6f328c,#371247);
}
.l2ds-btn--ghost{
  color:#ddd8cf;
  border-color:#3d464b;
  background:#0b1218;
}
.l2ds-btn--touch{min-height:var(--l2-control-lg)}

.l2ds-chip{
  min-height:24px;
  padding:3px 7px;
  display:inline-flex;
  align-items:center;
  border:1px solid #3b4449;
  border-radius:var(--l2-radius-xs);
  background:#10181d;
  color:#ddd8d0;
  font:700 10px/1 var(--l2-font-ui);
}
.l2ds-chip--rate{border-color:#8f6224;color:#f0c873;background:#1a1309}
.l2ds-chip--verified{border-color:#286b94;color:#8fd1ff;background:#071822}

.l2ds-status{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font:700 10px/1 var(--l2-font-ui);
  letter-spacing:.2px;
  text-transform:uppercase;
}
.l2ds-status:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.l2ds-status--open{color:var(--l2-status-open)}
.l2ds-status--upcoming{color:var(--l2-status-upcoming)}
.l2ds-status--warning{color:var(--l2-status-warning)}
.l2ds-status--danger{color:var(--l2-status-danger)}

@media (max-width:768px){
  .l2ds-btn{min-height:var(--l2-control-lg)}
  body.l2ds-v1 main :is(input,select,textarea){min-height:var(--l2-control-lg)}
}

@media (prefers-reduced-motion:reduce){
  body.l2ds-v1 *,body.l2ds-v1 *:before,body.l2ds-v1 *:after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
