/* ASDI Digital Cards — Brand System v1
 * Scoped visual layer. Does not replace the stable app.css.
 */
:root{
  --asdi-black:#020208;
  --asdi-black-2:#06000f;
  --asdi-deep:#0b0017;
  --asdi-blue:#244eff;
  --asdi-blue-2:#1c70ff;
  --asdi-purple:#922cff;
  --asdi-magenta:#e600ff;
  --asdi-pink:#ff009d;
  --asdi-cyan:#16d9ff;
  --asdi-ink:#08080d;
  --asdi-text:#252631;
  --asdi-muted:#717582;
  --asdi-line:#e8eaf0;
  --asdi-soft:#f7f8fc;
  --asdi-card:#ffffff;
  --asdi-gradient:linear-gradient(105deg,#172c81 0%,#2850ff 18%,#7936e8 37%,#922cff 50%,#16d9ff 100%);
  --asdi-gradient-full:linear-gradient(105deg,#1c70ff 0%,#2850ff 22%,#7936e8 45%,#e600ff 62%,#922cff 78%,#16d9ff 100%);
  --asdi-shadow:0 24px 70px rgba(18,19,33,.10);
  --asdi-radius:28px;
}

.asdi-brand,
.asdi-brand *{box-sizing:border-box}

.asdi-brand{font-family:Montserrat,Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--asdi-ink)}
.asdi-brand a{color:inherit}
.asdi-brand .asdi-gradient-text{
  color:transparent;
  background:var(--asdi-gradient-full);
  background-size:240% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  animation:asdiGradientFlow 10s ease-in-out infinite;
}
.asdi-brand .asdi-gradient-line{
  position:relative;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--asdi-blue-2),var(--asdi-purple),var(--asdi-cyan));
  overflow:hidden;
}
.asdi-brand .asdi-gradient-line::after{
  content:"";
  position:absolute;
  inset:-1px auto -1px -18%;
  width:22%;
  border-radius:999px;
  background:linear-gradient(90deg,transparent,#fff,var(--asdi-cyan),transparent);
  animation:asdiLineTravel 4.6s ease-in-out infinite;
}
.asdi-brand .asdi-btn{
  min-height:50px;
  padding:0 22px;
  border:0;
  border-radius:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  text-decoration:none;
  cursor:pointer;
  font:700 13px/1 Montserrat,Inter,sans-serif;
  transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease;
}
.asdi-brand .asdi-btn:hover{transform:translateY(-1px)}
.asdi-brand .asdi-btn-primary{
  color:#fff;
  background:var(--asdi-gradient-full);
  background-size:220% 100%;
  box-shadow:0 14px 34px rgba(62,70,255,.20);
  animation:asdiGradientFlow 10s ease-in-out infinite;
}
.asdi-brand .asdi-btn-secondary{background:#fff;border:1px solid var(--asdi-line);color:var(--asdi-ink)}
.asdi-brand .asdi-btn-dark{background:var(--asdi-black);color:#fff}
.asdi-brand .asdi-eyebrow{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#5361aa}
.asdi-brand .asdi-buddy{
  width:64px;height:64px;border-radius:22px;display:grid;place-items:center;flex:0 0 auto;
  background:linear-gradient(145deg,#ffffff 5%,#f4f1ff 65%,#ebfbff 100%);
  border:1px solid rgba(146,44,255,.16);
  box-shadow:0 18px 40px rgba(70,62,175,.16);
}
.asdi-brand .asdi-buddy img{display:block;width:44px;height:44px}
.asdi-brand .asdi-bubble{padding:14px 16px;border-radius:18px 18px 18px 7px;background:#fff;border:1px solid var(--asdi-line);box-shadow:0 14px 35px rgba(20,22,40,.08);font-size:11px;line-height:1.5;color:#555967}
.asdi-brand .asdi-bubble strong{color:var(--asdi-ink)}
.asdi-brand .asdi-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.asdi-brand .asdi-progress span{height:4px;border-radius:999px;background:#e9ebf2}
.asdi-brand .asdi-progress span.on{background:var(--asdi-gradient-full);background-size:220% 100%;animation:asdiGradientFlow 10s ease-in-out infinite}
.asdi-brand .asdi-choice{
  position:relative;display:block;padding:19px;border-radius:22px;border:1px solid var(--asdi-line);background:#fff;text-decoration:none;transition:.18s ease;overflow:hidden
}
.asdi-brand .asdi-choice:hover{transform:translateY(-2px);border-color:#cfd2e2;box-shadow:0 16px 36px rgba(20,22,40,.08)}
.asdi-brand .asdi-choice::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--asdi-gradient-full);opacity:.0;transition:.18s ease}
.asdi-brand .asdi-choice:hover::before{opacity:1}
.asdi-brand .asdi-choice h3{margin:0;font:800 18px/1.1 Montserrat,Inter,sans-serif;letter-spacing:-.6px}
.asdi-brand .asdi-choice p{margin:7px 0 0;font-size:11px;line-height:1.55;color:var(--asdi-muted)}
.asdi-brand .asdi-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:#f4f5fb;color:#596078;font:800 9px/1 Montserrat,Inter,sans-serif;letter-spacing:.4px}
.asdi-brand .asdi-shell{width:min(100% - 28px,1080px);margin:0 auto}
.asdi-brand .asdi-topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 0}
.asdi-brand .asdi-logo{font:800 15px/1 Montserrat,Inter,sans-serif;letter-spacing:-.5px;text-decoration:none}
.asdi-brand .asdi-logo strong{font-weight:900}
.asdi-brand .asdi-logo span{color:#6d7281;font-weight:600;margin-left:3px}
.asdi-brand .asdi-panel{background:#fff;border:1px solid var(--asdi-line);border-radius:var(--asdi-radius);box-shadow:var(--asdi-shadow)}
.asdi-brand .asdi-mesh{
  position:relative;overflow:hidden;background:
  radial-gradient(circle at 10% 4%,rgba(146,44,255,.10),transparent 34%),
  radial-gradient(circle at 96% 22%,rgba(22,217,255,.10),transparent 32%),
  linear-gradient(145deg,#fff 0%,#fafbff 58%,#f7fbff 100%);
}
.asdi-brand .asdi-mesh::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.022;background-image:linear-gradient(rgba(40,80,255,.65) 1px,transparent 1px),linear-gradient(90deg,rgba(40,80,255,.65) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to bottom,black,transparent 80%)}
.asdi-brand .asdi-content{position:relative;z-index:1}
.asdi-brand .asdi-form-control{width:100%;min-height:54px;border:1px solid #dfe2eb;border-radius:16px;padding:0 15px;background:#fff;color:var(--asdi-ink);font:500 14px/1.2 Montserrat,Inter,sans-serif;outline:none;transition:.18s ease}
.asdi-brand .asdi-form-control:focus{border-color:#7a73ff;box-shadow:0 0 0 4px rgba(111,88,255,.10)}
.asdi-brand .asdi-form-label{display:block;margin:0 0 8px;font:800 10px/1 Montserrat,Inter,sans-serif;letter-spacing:.4px;color:#565b6b;text-transform:uppercase}
.asdi-brand .asdi-step-caption{font:700 10px/1 Montserrat,Inter,sans-serif;letter-spacing:1px;color:#73788b;text-transform:uppercase}
.asdi-brand .asdi-note{padding:13px 14px;border-radius:16px;background:#f7f8fc;color:#6f7484;font-size:10px;line-height:1.55}

@keyframes asdiGradientFlow{0%,100%{background-position:0% 50%}42%,58%{background-position:100% 50%}}
@keyframes asdiLineTravel{0%{transform:translate3d(0,0,0);opacity:0}12%{opacity:1}82%{opacity:1}100%{transform:translate3d(560%,0,0);opacity:0}}
@media(prefers-reduced-motion:reduce){.asdi-brand .asdi-gradient-text,.asdi-brand .asdi-btn-primary,.asdi-brand .asdi-progress span.on{animation:none}.asdi-brand .asdi-gradient-line::after{animation:none}}
@media(max-width:700px){.asdi-brand .asdi-shell{width:min(100% - 20px,1080px)}.asdi-brand .asdi-topbar{padding:14px 0}.asdi-brand .asdi-btn{width:100%}.asdi-brand .asdi-topbar .asdi-btn{width:auto;min-height:42px;padding:0 15px;font-size:11px}.asdi-brand .asdi-buddy{width:56px;height:56px;border-radius:19px}.asdi-brand .asdi-buddy img{width:40px;height:40px}}

/* V1.1 interaction fixes */
.asdi-brand .asdi-plan-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.asdi-brand .asdi-choice.selected{border-color:transparent;background:linear-gradient(#fff,#fff) padding-box,var(--asdi-gradient-full) border-box;box-shadow:0 16px 36px rgba(70,62,175,.12);transform:translateY(-1px)}
.asdi-brand .asdi-choice.selected::before{opacity:1}
.asdi-brand .asdi-choice-check{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#eef0f7;color:#8a90a4;font:800 11px/1 Montserrat,Inter,sans-serif}
.asdi-brand .asdi-choice.selected .asdi-choice-check{background:var(--asdi-gradient-full);color:#fff;box-shadow:0 6px 16px rgba(62,70,255,.18)}
.asdi-brand .asdi-choice.selected .asdi-chip{background:#f1efff;color:#5e45a4}
.asdi-brand .asdi-choice.selected h3{color:var(--asdi-ink)}
.asdi-brand .asdi-selection-message{margin-top:10px;padding:11px 13px;border-radius:14px;background:#f7f8fc;color:#686f80;font-size:10px;line-height:1.45}
.asdi-brand .asdi-form-label{display:block!important;width:100%!important}
.asdi-brand .asdi-form-control{display:block!important;width:100%!important}
@media(max-width:700px){.asdi-brand .asdi-plan-choice-grid{grid-template-columns:1fr}}
