/*!***************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./app/globals.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************/
:root{
  --algo-blue:#2F455C; --green:#35F4C5; --green-2:#1FE0BF; --purple:#8A71EE;
  --light-blue:#1DCDFE; --pink:#FB81BE; --orange:#FBBC81;
  --grey-mid:#727272; --grey-light:#DDDDDD; --white:#fff;
  --tint-blue:#F9FBFF; --tint-green:#F1FCF9; --tint-purple:#FBF9FE;
  --ink:#2F455C; --ink-body:#474646;
  --grad:linear-gradient(120deg,#8A71EE 0%,#1DCDFE 52%,#35F4C5 100%);
  --r-card:16px; --r-pill:999px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--tint-blue);color:var(--ink-body);
  font-family:Figtree,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3{margin:0 0 12px;color:var(--ink);font-weight:700;letter-spacing:-.3px}
a{color:var(--algo-blue)}
.eyebrow{font-family:Exo,sans-serif;font-size:11px;font-weight:500;letter-spacing:.1em;
  text-transform:uppercase;color:var(--grey-mid);display:block;margin-bottom:10px}
.wrap{max-width:620px;margin:0 auto;padding:28px 20px 60px}

/* ---------- capture form, built for a tablet in kiosk mode ---------- */
.hero{background:var(--grad);color:#fff;border-radius:20px;padding:26px 24px;margin-bottom:20px}
.hero h1{color:#fff;font-size:30px;line-height:1.1;margin:0 0 6px}
.hero p{margin:0;color:rgba(255,255,255,.9)}
.hero .eyebrow{color:rgba(255,255,255,.85)}

.card{background:#fff;border:1px solid var(--grey-light);border-radius:var(--r-card);
  padding:22px 20px;box-shadow:0 2px 12px rgba(47,69,92,.08)}
label{display:block;font-weight:600;color:var(--ink);margin:0 0 6px;font-size:15px}
.hint{font-size:13px;color:var(--grey-mid);font-weight:400;margin:0 0 8px}
input[type=text],input[type=email],input[type=url],select,textarea{
  width:100%;font-family:inherit;font-size:17px;color:var(--ink);background:#fff;
  border:1.5px solid var(--grey-light);border-radius:12px;padding:14px 14px;margin-bottom:18px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--green-2);
  box-shadow:0 0 0 3px rgba(31,224,191,.35)}
textarea{min-height:78px;resize:vertical}

.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.chip{font:inherit;font-size:15px;font-weight:600;color:var(--ink);background:#fff;
  border:1.5px solid var(--grey-light);border-radius:var(--r-pill);padding:10px 16px;cursor:pointer}
.chip[aria-pressed=true]{background:var(--algo-blue);color:#fff;border-color:var(--algo-blue)}

.consent{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1.5px solid var(--grey-light);
  border-radius:12px;margin-bottom:12px;cursor:pointer;background:#fff}
.consent input{margin:2px 0 0;width:20px;height:20px;flex:0 0 20px;accent-color:var(--green-2)}
.consent span{font-size:14.5px;color:var(--ink-body)}
.consent.required{border-color:var(--purple)}

button.go{width:100%;font:inherit;font-size:18px;font-weight:700;background:var(--algo-blue);
  color:#fff;border:none;border-radius:var(--r-pill);padding:18px;cursor:pointer;margin-top:6px}
button.go:disabled{opacity:.45;cursor:not-allowed}

.err{background:#FFF4F4;border:1px solid #F3D4D4;border-radius:12px;padding:12px 14px;
  font-size:14px;color:#8A2020;margin-bottom:14px}
.offline{background:#FFF8F0;border:1px solid #F5E2CC;border-radius:12px;padding:12px 14px;
  font-size:14px;margin-bottom:14px}

/* ---------- personal page ---------- */
.dl{display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:#fff;border:1px solid var(--grey-light);border-radius:12px;padding:14px 16px;margin-bottom:10px}
.dl.lead{border-color:var(--green-2);box-shadow:0 2px 12px rgba(47,69,92,.08)}
.dl b{color:var(--ink);font-size:15px}
.dl .meta{font-size:12.5px;color:var(--grey-mid)}
.dl a{background:var(--algo-blue);color:#fff;text-decoration:none;font-weight:700;font-size:14px;
  border-radius:var(--r-pill);padding:10px 18px;white-space:nowrap}
.gap{background:var(--tint-purple);border:1px solid #E9E2FB;border-radius:12px;padding:16px 18px;margin-bottom:10px}
.gap b{color:var(--ink)}
.voice{background:var(--algo-blue);color:rgba(255,255,255,.78);border-radius:var(--r-card);padding:20px 22px;margin:16px 0}
.voice h3{color:#fff;font-size:17px}
.voice li{margin-bottom:6px}
.steps li{margin-bottom:10px}
code{background:#fff;border:1px solid var(--grey-light);border-radius:6px;padding:1px 6px;font-size:13.5px}

/* ---------- the wall ----------
   A display, not a page. Read at three to ten metres, never scrolled, never
   interacted with. Everything is sized in vw so it fills a 1080p screen and a
   4K one without a second breakpoint.                                      */
.wall{background:var(--algo-blue);height:100dvh;overflow:hidden;color:#fff;
  padding:2.4vh 2.6vw;display:flex;flex-direction:column;gap:2vh}

.wall-top{display:flex;align-items:center;justify-content:space-between;gap:24px;flex:0 0 auto}
.wall-stats{display:flex;align-items:flex-end;gap:2.6vw}
.wall-stat .n{font-size:clamp(36px,4.4vw,76px);font-weight:800;line-height:1;
  color:var(--green);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}
.wall-stat .n.queue{color:#fff;opacity:.85}
.wall-stat .k,.wall-bottom .k{font-family:Exo,sans-serif;font-size:clamp(10px,.82vw,15px);
  font-weight:500;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.55);margin-top:.5vh}
.wall-dot{width:10px;height:10px;border-radius:50%;background:var(--orange);
  align-self:center;animation:wall-pulse 1.6s ease-in-out infinite}

/* The gradient panel is the one bright surface. Everything else is the ground
   it sits on, which is what keeps it the thing your eye lands on. */
.wall-stage{flex:1 1 auto;min-height:0;border-radius:28px;padding:4.5vh 4vw;
  background:var(--grad);display:flex;flex-direction:column;justify-content:center;
  position:relative;overflow:hidden}
/* The gradient runs to light green bottom-right, so giant white text needs a
   little help. A soft scrim, not enough to mute the brand. */
.wall-stage::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,rgba(47,69,92,.34) 0%,rgba(47,69,92,.12) 46%,rgba(47,69,92,0) 78%)}
.wall-stage > *{position:relative;z-index:1}

.wall-eyebrow{font-family:Exo,sans-serif;font-size:clamp(12px,1.05vw,20px);font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.9);
  display:flex;align-items:center;gap:1.2vw;margin-bottom:1.6vh}
.wall-timer{font-family:Figtree,sans-serif;font-weight:800;letter-spacing:0;
  font-feature-settings:"tnum";
  font-variant-numeric:tabular-nums;background:rgba(255,255,255,.18);
  border-radius:999px;padding:.35em .9em;font-size:.95em}
.wall-name{color:#fff;font-weight:800;line-height:1.02;letter-spacing:-.02em;margin:0}
.wall-sub{margin-top:2.4vh;font-size:clamp(17px,1.65vw,31px);line-height:1.45;
  color:rgba(255,255,255,.92);max-width:34ch}

/* The rail is the demo. Someone watching learns what the machine is doing,
   which is more persuasive than a spinner and the reason to stand still. */
.rail{list-style:none;display:flex;gap:1vw;margin:3.4vh 0 0;padding:0}
.rail li{flex:1 1;min-width:0}
.rail .bar{display:block;height:.9vh;min-height:6px;border-radius:999px;
  background:rgba(255,255,255,.26)}
.rail .txt{display:block;margin-top:1.1vh;font-family:Exo,sans-serif;
  font-size:clamp(10px,.82vw,15px);font-weight:500;letter-spacing:.08em;
  text-transform:uppercase;color:rgba(255,255,255,.5);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rail li.done .bar{background:var(--green)}
.rail li.done .txt{color:rgba(255,255,255,.78)}
.rail li.active .bar{background:#fff;height:1.5vh;min-height:10px;margin-top:-.3vh;
  box-shadow:0 0 0 .5vh rgba(255,255,255,.22);
  animation:wall-pulse 1.25s ease-in-out infinite}
.rail li.active .txt{color:#fff;font-weight:600}

.rail.idle{margin-top:auto;padding-top:4vh}
.rail.idle .bar{background:rgba(255,255,255,.3)}
.rail.idle .txt{color:rgba(255,255,255,.78);white-space:normal}
.rail.idle .txt b{color:#fff;font-weight:700;margin-right:.35em}

.wall-also{margin-top:2.4vh;font-size:clamp(14px,1.15vw,22px);color:rgba(255,255,255,.8)}

.wall-bottom{flex:0 0 auto;min-height:0;display:flex;flex-direction:column;gap:1.2vh}
.wall-bottom-head{display:flex;align-items:baseline;gap:1.2vw}
.wall-bottom .k.dim{color:rgba(255,255,255,.35)}

/* Brand cards: proof that something was actually made, not a list of names.
   White on the Algo Blue ground, because a stranger's palette can only be read
   honestly against a neutral surface. Half these swatches are near-black and
   would vanish on a dark card. */
.brandcards{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1vw;gap:1vw;min-height:0}
.bcard{background:#fff;border-radius:14px;padding:1.6vh 1.1vw;min-width:0;
  display:flex;flex-direction:column;gap:.9vh;
  animation:bcard-in .45s ease-out both}
.bcard h3{color:var(--ink);font-size:clamp(15px,1.25vw,25px);font-weight:800;
  margin:0;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.swatches{display:flex;gap:.35vw}
.swatches span{flex:1 1;height:1.5vh;min-height:11px;border-radius:4px;
  /* A hairline, so #fff and #f0eee6 read as colours rather than as a gap. */
  box-shadow:inset 0 0 0 1px rgba(47,69,92,.18)}

.bcard ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6vh;
  min-height:0;overflow:hidden}
.bcard li{color:var(--ink-body);font-size:clamp(11px,.87vw,17px);line-height:1.3;
  padding-left:.9em;position:relative}
.bcard li::before{content:'';position:absolute;left:0;top:.52em;width:.32em;height:.32em;
  border-radius:50%;background:var(--green-2)}

.bcard.empty{background:rgba(255,255,255,.06);border:1px dashed rgba(255,255,255,.22);
  align-items:center;justify-content:center;animation:none}
.bcard.empty span{font-family:Exo,sans-serif;font-size:clamp(10px,.8vw,15px);font-weight:500;
  letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.4)}

@keyframes bcard-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){ .bcard{animation:none} }

@keyframes wall-pulse{0%,100%{opacity:1}50%{opacity:.42}}
@media (prefers-reduced-motion:reduce){
  .wall-dot,.rail li.active .bar{animation:none}
}

/* ---------- admin ---------- */
.admin{max-width:1400px;margin:0 auto;padding:24px 22px 60px}
.ad-top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.ad-top h1{font-size:28px;margin:0}
.ad-stats{display:flex;gap:22px;flex-wrap:wrap}
.ad-stats div{display:flex;flex-direction:column}
.ad-stats b{font-size:26px;font-weight:800;color:var(--ink);line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}
.ad-stats b.good{color:#0d7a63}
.ad-stats b.warn{color:#B4531B}
.ad-stats span{font-family:Exo,sans-serif;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--grey-mid);margin-top:4px}

.ad-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.ad-tabs{display:flex;gap:6px;flex-wrap:wrap}
.ad-tab,.ad-btn{font:inherit;font-size:13px;font-weight:600;color:var(--ink);background:#fff;
  border:1.5px solid var(--grey-light);border-radius:999px;padding:8px 14px;cursor:pointer;white-space:nowrap}
.ad-tab:hover,.ad-btn:hover{border-color:var(--green-2)}
.ad-tab[aria-pressed=true],.ad-btn[aria-pressed=true]{background:var(--algo-blue);color:#fff;border-color:var(--algo-blue)}
.ad-btn.sm{font-size:12px;padding:6px 11px}
.ad-search{flex:1 1;min-width:200px;font:inherit;font-size:14px;padding:9px 13px;
  border:1.5px solid var(--grey-light);border-radius:999px;margin:0}

.ad-table{background:#fff;border:1px solid var(--grey-light);border-radius:14px;overflow:hidden}
.ad-head,.ad-row{display:grid;grid-template-columns:1.5fr 1.4fr .9fr .8fr .9fr 1fr .9fr;grid-gap:12px;gap:12px;
  padding:11px 16px;align-items:start}
.ad-head{font-family:Exo,sans-serif;font-size:10px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--grey-mid);border-bottom:1px solid var(--grey-light);background:var(--tint-blue)}
.ad-row{border-bottom:1px solid var(--grey-light);font-size:13.5px;cursor:pointer}
.ad-row:hover{background:var(--tint-blue)}
.ad-row b{color:var(--ink);font-weight:700}
.ad-row>span{display:flex;flex-direction:column;gap:2px;min-width:0;word-break:break-word}
.ad-sub{font-size:11.5px;color:var(--grey-mid)}
.ad-sub.warn{color:#B4531B;font-weight:600}
.good{color:#0d7a63;font-weight:600}
.ad-empty{padding:28px 16px;text-align:center;color:var(--grey-mid)}
.ad-actions{flex-direction:row!important;gap:6px!important;flex-wrap:wrap}
.ad-dl{font-weight:700;color:var(--algo-blue)}

.pill{display:inline-block;font-family:Exo,sans-serif;font-size:10px;letter-spacing:.07em;
  text-transform:uppercase;font-weight:600;padding:3px 9px;border-radius:999px;width:-moz-fit-content;width:fit-content}
.pill.ready{background:#DFF7F0;color:#0d5c4c}
.pill.queued{background:#EFEFEF;color:#555}
.pill.running{background:#DDF3FE;color:#0b5a78}
.pill.manual{background:#FFF0DE;color:#8A4A12}
.pill.failed{background:#FFE3E3;color:#8A2020}

.ad-detail{padding:16px 18px 20px;background:var(--tint-blue);border-bottom:1px solid var(--grey-light)}
.ad-cols{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px}
.ad-cols h4{font-size:12px;font-family:Exo,sans-serif;letter-spacing:.09em;text-transform:uppercase;
  color:var(--grey-mid);margin:0 0 8px}
.ad-cols p{margin:0 0 6px;font-size:13px}
.ad-cols ul{margin:0;padding-left:18px;font-size:13px}
.ad-cols li{margin-bottom:4px}
.ad-pre{margin:14px 0 0;padding:12px 14px;background:#fff;border:1px solid var(--grey-light);
  border-radius:10px;font-size:12px;white-space:pre-wrap;overflow-x:auto;color:var(--ink-body)}
.ad-pre.err-pre{border-color:#F3D4D4;background:#FFF8F8;color:#7A1F1F}

@media (max-width:1100px){
  .ad-head{display:none}
  .ad-row{grid-template-columns:1fr 1fr;gap:8px}
  .ad-cols{grid-template-columns:1fr}
}

/* ---------- Algo Blue tile: the brand's punctuation, not its body ---------- */
.tile{background:var(--algo-blue);color:rgba(255,255,255,.78);border-radius:var(--r-card);
  padding:22px 22px;margin-top:12px}
.tile h3{color:#fff;font-size:19px;margin:0 0 10px}
.tile .eyebrow{color:var(--green)}
.tile p{margin:0 0 12px}

/* ---------- footer ---------- */
.pagefoot{display:flex;align-items:center;gap:12px;margin-top:36px;padding-top:20px;
  border-top:1px solid var(--grey-light)}
.pagefoot span{font-family:Exo,sans-serif;font-size:11px;font-weight:500;letter-spacing:.1em;
  text-transform:uppercase;color:var(--grey-mid)}

