:root{
  --bg:#f4f7fb;
  --panel:#ffffff;
  --fg:#253247;
  --fg-2:#68778d;
  --border:#dce4ef;
  --border-strong:#9aaee8;
  --accent:#596dff;
  --accent-2:#1d9a71;
  --danger:#c43d4b;
  --shadow:0 18px 50px rgba(45,62,92,.12);
}
[data-theme="dark"]{
  --bg:#0f141d;
  --panel:#151c28;
  --fg:#edf3ff;
  --fg-2:#9ca9bd;
  --border:#273348;
  --border-strong:#5266d8;
  --accent:#8090ff;
  --accent-2:#49c79a;
  --danger:#ff6878;
  --shadow:0 18px 50px rgba(0,0,0,.28);
}
*{box-sizing:border-box}
body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:0;
}
button,input{
  font:inherit;
}
button,a.ghost{
  border:0;
  border-radius:8px;
  background:var(--accent);
  color:white;
  padding:12px 18px;
  font-weight:700;
  cursor:pointer;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
}
button:disabled{opacity:.55;cursor:not-allowed}
.ghost{
  background:transparent!important;
  color:var(--fg)!important;
  border:1px solid var(--border)!important;
}
.sm{padding:8px 12px;min-height:34px;font-size:13px}
.icon-btn{
  width:42px;
  height:42px;
  padding:0;
  border:1px solid var(--border);
  background:var(--panel);
  color:var(--fg);
}
input,select,textarea{
  width:100%;
  min-width:0;
  border:1px solid var(--border);
  background:var(--panel);
  color:var(--fg);
  border-radius:8px;
  padding:12px 14px;
  outline:none;
}
input:focus,textarea:focus,select:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);
}
.mono{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
.muted{color:var(--fg-2)}
.strong{font-weight:800}
.wrap{
  width:min(980px,calc(100% - 32px));
  margin:0 auto;
  padding:24px 0 48px;
}
.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:26px;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:800;
}
.brand-mark{
  width:34px;
  height:34px;
  border-radius:8px;
  display:grid;
  place-items:center;
  background:var(--fg);
  color:var(--panel);
}
.brand-name{font-size:18px}
.exchange-shell{
  display:grid;
  gap:18px;
}
.hero{
  min-height:150px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  padding:28px 4px 10px;
}
.hero h1{
  margin:4px 0 0;
  font-size:42px;
  line-height:1.05;
}
.hero-copy{
  max-width:620px;
  margin:14px 0 0;
  color:var(--fg-2);
  font-size:16px;
  line-height:1.7;
  font-weight:700;
}
.kicker{
  margin:0;
  color:var(--accent);
  font-weight:800;
  text-transform:uppercase;
  font-size:12px;
}
.service-chip{
  border:1px solid var(--border);
  border-radius:999px;
  padding:8px 12px;
  color:var(--fg-2);
  background:var(--panel);
  white-space:nowrap;
}
.promo-strip{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.promo-item{
  min-height:132px;
  border:1px solid var(--border);
  border-radius:8px;
  padding:16px;
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--accent) 12%,transparent),transparent 48%),
    var(--panel);
  box-shadow:var(--shadow);
}
.promo-tag{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  border-radius:999px;
  padding:3px 9px;
  margin-bottom:12px;
  color:var(--accent);
  background:color-mix(in srgb,var(--accent) 12%,transparent);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}
.promo-item strong{
  display:block;
  font-size:18px;
  line-height:1.3;
}
.promo-item p{
  margin:8px 0 0;
  color:var(--fg-2);
  line-height:1.6;
  font-size:14px;
}
.wholesale-banner{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));
  border-radius:14px;
  padding:1px;
  background:
    linear-gradient(120deg,
      color-mix(in srgb,var(--accent) 78%,transparent),
      color-mix(in srgb,var(--accent-2) 72%,transparent),
      color-mix(in srgb,#ffb84d 70%,transparent),
      color-mix(in srgb,var(--accent) 78%,transparent));
  background-size:260% 260%;
  box-shadow:
    0 24px 70px color-mix(in srgb,var(--accent) 22%,transparent),
    var(--shadow);
  animation:wholesale-gradient 8s cubic-bezier(.65,0,.35,1) infinite;
}
.wholesale-banner::after{
  content:"";
  position:absolute;
  inset:-40% auto -40% -28%;
  width:32%;
  z-index:2;
  pointer-events:none;
  transform:skewX(-18deg) translateX(-120%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);
  animation:wholesale-sheen 4.8s cubic-bezier(.16,1,.3,1) infinite;
}
.wholesale-flow{
  position:absolute;
  inset:-35%;
  z-index:0;
  background:
    radial-gradient(circle at 20% 20%,color-mix(in srgb,var(--accent) 42%,transparent),transparent 26%),
    radial-gradient(circle at 76% 46%,color-mix(in srgb,var(--accent-2) 36%,transparent),transparent 28%),
    radial-gradient(circle at 48% 78%,rgba(255,184,77,.28),transparent 24%);
  opacity:.8;
  transform:translate3d(-3%,0,0) rotate(0deg);
  animation:wholesale-orbit 12s cubic-bezier(.65,0,.35,1) infinite alternate;
}
.wholesale-content{
  position:relative;
  z-index:1;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,360px);
  gap:22px;
  align-items:center;
  padding:26px;
  border-radius:13px;
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--accent) 16%,transparent),transparent 40%),
    color-mix(in srgb,var(--panel) 92%,var(--bg) 8%);
}
.wholesale-content::before{
  content:"";
  position:absolute;
  inset:-28%;
  z-index:0;
  pointer-events:none;
  opacity:.52;
  transform:translate3d(-16%,0,0) rotate(-5deg);
  background:repeating-linear-gradient(
    110deg,
    transparent 0 8%,
    color-mix(in srgb,var(--accent) 22%,transparent) 10%,
    color-mix(in srgb,var(--accent-2) 18%,transparent) 12%,
    transparent 18% 28%
  );
  animation:wholesale-lanes 7s cubic-bezier(.65,0,.35,1) infinite;
}
.wholesale-copy,
.wholesale-card{
  position:relative;
  z-index:1;
}
.wholesale-kicker{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  min-height:26px;
  border-radius:999px;
  padding:4px 10px;
  margin-bottom:12px;
  color:var(--accent);
  background:color-mix(in srgb,var(--accent) 14%,transparent);
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.wholesale-copy h2{
  margin:0;
  max-width:720px;
  font-size:clamp(26px,3.5vw,44px);
  line-height:1.08;
  letter-spacing:-.04em;
}
.wholesale-copy p{
  max-width:700px;
  margin:14px 0 0;
  color:var(--fg-2);
  font-size:16px;
  line-height:1.75;
  font-weight:700;
}
.wholesale-delivery{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
}
.wholesale-delivery span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));
  border-radius:999px;
  padding:6px 10px;
  color:var(--fg);
  background:color-mix(in srgb,var(--panel) 78%,var(--accent) 10%);
  font-size:13px;
  font-weight:800;
}
.wholesale-card{
  display:grid;
  gap:14px;
  border:1px solid color-mix(in srgb,var(--accent) 34%,var(--border));
  border-radius:12px;
  padding:16px;
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--accent) 14%,transparent),transparent),
    color-mix(in srgb,var(--panel) 88%,var(--accent) 8%);
}
.price-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.price-grid div{
  border:1px solid color-mix(in srgb,var(--accent) 24%,var(--border));
  border-radius:10px;
  padding:12px 8px;
  text-align:center;
  background:color-mix(in srgb,var(--panel) 78%,var(--bg) 22%);
}
.price-grid small,
.price-grid span{
  display:block;
  color:var(--fg-2);
  font-size:12px;
  font-weight:800;
}
.price-grid strong{
  display:block;
  margin:4px 0 2px;
  color:var(--fg);
  font-size:28px;
  line-height:1;
  letter-spacing:-.04em;
}
.wholesale-qq{
  min-height:48px;
  border-radius:10px;
  padding:13px 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#fff;
  background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent-2) 78%,var(--accent)));
  text-decoration:none;
  font-weight:900;
  box-shadow:0 14px 30px color-mix(in srgb,var(--accent) 25%,transparent);
  transition:
    transform 180ms cubic-bezier(.25,1,.5,1),
    box-shadow 180ms cubic-bezier(.25,1,.5,1);
}
.wholesale-qq:hover{
  transform:translateY(-1px);
  box-shadow:0 18px 34px color-mix(in srgb,var(--accent) 30%,transparent);
}
.wholesale-qq:focus-visible{
  outline:3px solid color-mix(in srgb,var(--accent) 34%,transparent);
  outline-offset:3px;
}
@keyframes wholesale-gradient{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}
@keyframes wholesale-sheen{
  0%,52%{transform:skewX(-18deg) translateX(-120%);opacity:0}
  62%{opacity:.9}
  100%{transform:skewX(-18deg) translateX(520%);opacity:0}
}
@keyframes wholesale-orbit{
  from{transform:translate3d(-3%,0,0) rotate(0deg)}
  to{transform:translate3d(3%,2%,0) rotate(10deg)}
}
@keyframes wholesale-lanes{
  0%{transform:translate3d(-16%,0,0) rotate(-5deg)}
  50%{transform:translate3d(8%,2%,0) rotate(-5deg)}
  100%{transform:translate3d(-16%,0,0) rotate(-5deg)}
}
.guide-panel{
  padding-bottom:18px;
}
.guide-steps{
  list-style:none;
  counter-reset:guide-step;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:12px;
  margin:16px 0 0;
  padding:0;
}
.guide-steps li{
  counter-increment:guide-step;
  position:relative;
  padding:0 0 0 38px;
  min-height:92px;
}
.guide-steps li::before{
  content:counter(guide-step);
  position:absolute;
  left:0;
  top:0;
  width:28px;
  height:28px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--accent);
  color:white;
  font-weight:900;
  font-size:13px;
}
.guide-steps strong{
  display:block;
  line-height:1.35;
  margin-bottom:8px;
}
.guide-steps span{
  display:block;
  color:var(--fg-2);
  font-size:14px;
  line-height:1.6;
}
.guide-link{
  color:var(--accent);
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:3px;
}
.guide-link:hover{
  text-decoration-thickness:2px;
}
.guide-link:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
  border-radius:2px;
}
.panel{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:8px;
  box-shadow:var(--shadow);
  padding:22px;
}
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:16px;
}
.section-title{
  font-weight:800;
  font-size:20px;
}
.section-head p{margin:4px 0 0}
.section-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
}
.cdk-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) 160px;
  gap:12px;
}
.cdk-form input{
  font-size:28px;
  text-align:center;
  letter-spacing:0;
  font-weight:800;
  text-transform:uppercase;
}
.helper{
  text-align:center;
  margin-top:12px;
  color:var(--fg-2);
  font-weight:700;
}
.state-card{
  margin-top:18px;
  border:1px solid var(--border);
  border-radius:8px;
  padding:16px;
}
.state-main,.state-row,.order-head,.code-row,.history-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.cdk-bar{
  height:8px;
  background:color-mix(in srgb,var(--border) 70%,transparent);
  border-radius:999px;
  overflow:hidden;
  margin:14px 0 10px;
}
.cdk-bar i{
  display:block;
  height:100%;
  background:linear-gradient(90deg,var(--accent),var(--accent-2));
}
.mail-panel .section-head{
  align-items:center;
}
.orders{
  display:grid;
  gap:12px;
}
.order-card{
  border:1px solid var(--border);
  border-radius:8px;
  padding:16px;
  background:color-mix(in srgb,var(--panel) 92%,var(--accent) 8%);
}
.mail{
  font-size:18px;
  font-weight:800;
  overflow-wrap:anywhere;
}
.order-meta{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  color:var(--fg-2);
  margin:12px 0;
  font-size:13px;
}
.code-row{
  justify-content:flex-start;
}
.code{
  min-height:42px;
  flex:1;
  border:1px dashed var(--border-strong);
  border-radius:8px;
  padding:10px 12px;
  display:flex;
  align-items:center;
  overflow-wrap:anywhere;
}
.code-history{
  margin-top:10px;
  display:grid;
  gap:8px;
}
.code-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.code-chip{
  border:1px solid var(--border);
  border-radius:999px;
  background:transparent;
  color:var(--fg);
  padding:8px 12px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
}
.code-chip span{
  font-size:12px;
  color:var(--fg-2);
}
.code-chip strong{
  font-size:13px;
}
.code-chip:hover{
  border-color:var(--accent);
  color:var(--accent);
}
.code-chip-static{cursor:default}
.code-chip-static:hover{
  border-color:var(--border);
  color:var(--fg);
}
.poll-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}
.poll-status{
  font-size:13px;
}
.empty{
  border:1px dashed var(--border);
  border-radius:8px;
  padding:18px;
  color:var(--fg-2);
  text-align:center;
}
.empty.ok{color:var(--accent-2)}
.empty.bad{color:var(--danger)}
.inline-form{margin:0}
.notes ul{
  margin:12px 0 0;
  padding-left:20px;
  color:var(--fg-2);
}
.notes li+li{margin-top:8px}
.history-lookup{
  margin-top:18px;
  border-top:1px solid var(--border);
  padding-top:16px;
}
.history-lookup form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:10px;
}
.history-list{
  margin-top:12px;
  display:grid;
  gap:8px;
}
.history-row{
  padding:12px;
  border:1px solid var(--border);
  border-radius:8px;
}
.badge{
  border-radius:999px;
  padding:4px 8px;
  background:color-mix(in srgb,var(--muted) 14%,transparent);
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}
.badge.ok{
  background:color-mix(in srgb,var(--accent-2) 16%,transparent);
  color:var(--accent-2);
}
.badge.bad{
  background:color-mix(in srgb,var(--danger) 14%,transparent);
  color:var(--danger);
}
.toast{
  position:fixed;
  left:50%;
  bottom:28px;
  transform:translateX(-50%) translateY(20px);
  opacity:0;
  pointer-events:none;
  background:var(--fg);
  color:var(--panel);
  padding:12px 16px;
  border-radius:8px;
  box-shadow:var(--shadow);
  transition:.18s ease;
  z-index:50;
}
.toast.show{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}
.toast.err{background:var(--danger);color:white}
.modal{
  border:0;
  padding:0;
  background:transparent;
}
.modal::backdrop{background:rgba(10,16,26,.45)}
.modal-card{
  background:var(--panel);
  color:var(--fg);
  border:1px solid var(--border);
  border-radius:8px;
  padding:20px;
  width:min(420px,calc(100vw - 32px));
  box-shadow:var(--shadow);
}
.confirm-card h3{margin:0 0 10px}
.modal-head{
  font-weight:800;
  margin-bottom:12px;
}
.confirm-body{
  color:var(--fg-2);
  line-height:1.6;
}
.modal-foot{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:18px;
}
.confirm-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:18px;
}
@media (max-width:720px){
  .wrap{width:min(100% - 22px,980px);padding-top:14px}
  .hero{min-height:100px;align-items:flex-start;flex-direction:column}
  .hero h1{font-size:34px}
  .hero-copy{font-size:15px}
  .promo-strip{grid-template-columns:1fr}
  .promo-item{min-height:auto}
  .wholesale-content{
    grid-template-columns:1fr;
    gap:18px;
    padding:18px;
  }
  .wholesale-copy h2{font-size:28px}
  .wholesale-copy p{font-size:15px}
  .wholesale-card{padding:12px}
  .price-grid{grid-template-columns:1fr}
  .price-grid strong{font-size:30px}
  .guide-steps{grid-template-columns:1fr}
  .guide-steps li{min-height:auto}
  .panel{padding:16px}
  .section-head,.state-main,.state-row,.order-head,.code-row{
    align-items:stretch;
    flex-direction:column;
  }
  .poll-row{
    align-items:stretch;
    flex-direction:column;
  }
  .section-actions{justify-content:flex-start}
  .cdk-form,.history-lookup form{
    grid-template-columns:1fr;
  }
  .cdk-form input{font-size:22px}
}
@media (prefers-reduced-motion:reduce){
  .wholesale-banner,
  .wholesale-banner::after,
  .wholesale-content::before,
  .wholesale-flow{
    animation:none;
  }
  .wholesale-qq{
    transition:none;
  }
  .wholesale-qq:hover{
    transform:none;
  }
}
