/* Veazy® free tools — shared styles (light, Nunito-only) */
:root{
  --ink:#1F1B2E; --paper:#FAF8FF; --card:#FFFFFF; --line:#EDE7F4;
  --mute:#5F5876; --purple:#7B3FE4; --purple2:#9D5FE8; --teal:#14B8A6; --gold:#F5C242;
  --grad:linear-gradient(135deg,#7B3FE4 0%,#9D5FE8 45%,#14B8A6 100%);
}
*{margin:0;padding:0;box-sizing:border-box}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;
  font-size:16.5px;line-height:1.6;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.disp{font-family:'Space Grotesk',sans-serif;font-weight:700;letter-spacing:-.03em;line-height:1.08}
.grad-i{font-style:normal;font-weight:700;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.06em}
.container{max-width:960px;margin:0 auto;padding:0 24px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;border:none;cursor:pointer;
  font-family:'Inter',sans-serif;font-weight:800;font-size:16px;padding:14px 28px;border-radius:999px;color:#fff;
}
.btn-primary{background:var(--grad);box-shadow:0 4px 14px rgba(123,63,228,.3);transition:box-shadow .2s,transform .2s}
.btn-primary:hover{box-shadow:0 10px 26px rgba(123,63,228,.45);transform:translateY(-1px)}
.btn-light{background:#fff;color:var(--ink);border:1.5px solid var(--line);transition:all .2s}
.btn-light:hover{border-color:var(--purple);color:var(--purple)}
.kicker{
  font-size:12px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--purple);
  display:inline-flex;align-items:center;gap:10px;margin-bottom:16px;
}
.kicker::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--grad);flex:none}
.lab{font-size:10px;font-weight:800;letter-spacing:.2em;color:var(--mute);text-transform:uppercase;display:block}

/* nav (matched to Salvo Migration header system) */
.t-nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);box-shadow:0 6px 24px rgba(31,27,46,.05)}
.t-nav .in{max-width:960px;margin:0 auto;padding:0 24px;height:76px;display:flex;align-items:center;justify-content:space-between}
.t-nav .logo{height:40px;width:auto}
.t-nav .right{display:flex;gap:26px;align-items:center;font-weight:700;font-size:15px}
.t-nav .right a{color:var(--mute);transition:color .2s;white-space:nowrap}
.t-nav .right a:hover{color:var(--ink)}
.t-nav .right a.active{color:var(--ink);position:relative}
.t-nav .right a.active:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2.5px;border-radius:99px;background:var(--purple)}
.t-nav .right .btn{padding:12px 22px;font-size:15px;border-radius:14px;color:#fff}
.t-nav .right .btn:hover{transform:translateY(-2px);color:#fff}
.t-nav .btn .short{display:none}
@media(max-width:560px){
  .t-nav .right{gap:14px}
  .t-nav .right a:not(.btn){display:none}
  .t-nav .right .btn{padding:11px 18px;font-size:14px;white-space:nowrap}
  .t-nav .btn .long{display:none}
  .t-nav .btn .short{display:inline}
}

/* header */
.t-head{padding:64px 0 34px;text-align:center;position:relative;overflow:hidden}
.t-head::before{content:"";position:absolute;width:700px;height:700px;left:50%;top:-460px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,rgba(123,63,228,.12),transparent 62%);pointer-events:none}
.t-head h1{font-size:clamp(32px,4.6vw,52px);max-width:17em;margin:0 auto 14px;position:relative}
.t-head p{color:var(--mute);max-width:600px;margin:0 auto;font-size:17.5px;position:relative}

/* tool card */
.tool-card{
  background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 30px 70px rgba(31,27,46,.1);
  padding:30px;margin:30px 0;
}
.tool-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:30px}
@media(max-width:820px){.tool-grid{grid-template-columns:1fr}}
.f-row{margin-bottom:16px}
.f-row label{font-size:13.5px;font-weight:800;display:block;margin-bottom:6px}
.f-row select,.f-row input[type="text"]{
  width:100%;font-family:'Inter',sans-serif;font-size:15px;font-weight:700;color:var(--ink);
  background:#FAF8FF;border:1.5px solid var(--line);border-radius:12px;padding:11px 14px;outline:none;
}
.f-row select:focus{border-color:var(--purple)}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg button{
  font-family:'Inter',sans-serif;font-size:13.5px;font-weight:800;cursor:pointer;
  border:1.5px solid var(--line);background:#fff;color:var(--mute);border-radius:99px;padding:7px 16px;transition:all .15s;
}
.seg button.on{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(123,63,228,.28)}
.qrow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px dashed var(--line)}
.qrow:last-child{border-bottom:none}
.qrow p{font-size:14.5px;font-weight:700;flex:1}
.qrow .seg button{padding:6px 14px;font-size:12.5px}

/* results */
.res{
  background:#FAF8FF;border:1px solid var(--line);border-radius:18px;padding:24px;position:sticky;top:86px;
}
.res .big{font-size:64px;font-weight:900;letter-spacing:-.03em;line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.res .unit{font-size:15px;font-weight:800;color:var(--mute)}
.verdict{
  display:inline-block;margin:12px 0 16px;font-size:12.5px;font-weight:800;letter-spacing:.06em;
  border-radius:99px;padding:5px 14px;
}
.verdict.good{background:#E7F9F1;color:#0E9F6E;border:1px solid #B5EBD3}
.verdict.mid{background:#FDF2E3;color:#B45309;border:1px solid #F3D9AC}
.verdict.low{background:#FDECEC;color:#C0392B;border:1px solid #F5C6C6}
.bars{display:flex;flex-direction:column;gap:9px;margin-top:6px}
.bars .b{font-size:12px;font-weight:800}
.bars .b span{display:flex;justify-content:space-between;color:var(--mute);margin-bottom:3px}
.bars .b i{display:block;height:6px;border-radius:99px;background:#EDE7F4;overflow:hidden}
.bars .b i em{display:block;height:100%;background:var(--grad);border-radius:99px;transition:width .5s cubic-bezier(.5,0,.2,1)}
.rangebar{position:relative;height:14px;border-radius:99px;background:linear-gradient(90deg,#D9F3EE,#EDE7F4,#F8E3D9);margin:26px 0 8px}
.rangebar .fill{position:absolute;top:0;bottom:0;border-radius:99px;background:var(--grad);opacity:.85;transition:all .5s}
.rangebar .mk{position:absolute;top:-7px;width:2.5px;height:28px;background:var(--ink);border-radius:2px;transition:left .5s}
.rangebar .mk b{
  position:absolute;top:-24px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:10px;font-weight:800;
  letter-spacing:.08em;background:#fff;border:1px solid var(--line);border-radius:99px;padding:2px 9px;
}
.axis{display:flex;justify-content:space-between;font-size:10.5px;font-weight:800;color:#A79FC0;letter-spacing:.1em}

/* generated artifact (document preview) */
.artifact{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 20px 50px rgba(31,27,46,.08)}
.artifact .a-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid var(--line);background:#FBFAFE}
.artifact .a-head b{font-size:14.5px}
.artifact .a-head .cnt{font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--purple);white-space:nowrap}
.a-cats{display:flex;gap:7px;flex-wrap:wrap;padding:13px 18px;border-bottom:1px dashed var(--line)}
.a-cats span{font-size:11px;font-weight:800;border:1px solid var(--line);border-radius:99px;padding:3px 11px;color:var(--mute);background:#FAF8FF}
.a-cats span b{color:var(--purple)}
.a-list{padding:12px 18px 0;display:flex;flex-direction:column;gap:7px}
.clrow{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:#fff}
.clrow .box{width:17px;height:17px;flex:none;border:2px solid #D9D2E9;border-radius:5px}
.clrow p{font-size:13px;font-weight:700;flex:1;line-height:1.4}
.clrow .cat{font-size:9.5px;font-weight:800;letter-spacing:.08em;color:var(--teal);text-transform:uppercase;white-space:nowrap}
.reprow{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 13px;background:#fff}
.reprow .ic{font-size:17px;flex:none}
.reprow b{font-size:13.5px;display:block}
.reprow small{font-size:11.5px;color:var(--mute);font-weight:700}
.reprow .val{margin-left:auto;font-weight:900;font-size:15px;white-space:nowrap}

/* lock + gate */
.lockwrap{position:relative}
.locked{filter:blur(6px);pointer-events:none;user-select:none}
.lockfade{
  position:absolute;left:0;right:0;bottom:0;top:26%;display:flex;align-items:flex-end;justify-content:center;
  background:linear-gradient(180deg,rgba(250,248,255,0),rgba(250,248,255,.9) 42%,#FAF8FF 85%);
  padding:20px 16px 22px;
}
.gate-card{
  background:#fff;border:1.5px solid rgba(157,95,232,.4);border-radius:20px;box-shadow:0 24px 60px rgba(31,27,46,.16);
  padding:26px 26px 20px;text-align:center;max-width:470px;width:100%;
}
.gate-card .gate-lock{
  width:44px;height:44px;border-radius:50%;background:var(--grad);display:inline-flex;align-items:center;justify-content:center;
  font-size:19px;margin-bottom:10px;box-shadow:0 8px 22px rgba(123,63,228,.3);
}
.gate-card h3{font-size:20px;font-weight:900;letter-spacing:-.01em;margin-bottom:6px}
.gate-card .gsub{color:var(--mute);font-size:13.5px;margin-bottom:16px}
.gate-card form{display:flex;flex-direction:column;gap:9px}
.gate-card input{
  font-family:'Inter',sans-serif;font-size:14.5px;font-weight:700;color:var(--ink);
  background:#FAF8FF;border:1.5px solid var(--line);border-radius:999px;padding:11px 18px;outline:none;
}
.gate-card input:focus{border-color:var(--teal)}
.gate-card form.shake{animation:tshake .4s}
@keyframes tshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
.gate-card .note{margin-top:10px;font-size:10px;font-weight:800;letter-spacing:.12em;color:#A79FC0;text-transform:uppercase}
.gate-card .done{display:none;flex-direction:column;align-items:center;gap:10px}
.gate-card .done .tick{width:52px;height:52px;border-radius:50%;background:var(--grad);color:#fff;font-size:24px;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(123,63,228,.35)}
.gate-card .done p{color:var(--mute);font-size:13.5px}
.gate-card.ok form,.gate-card.ok .note,.gate-card.ok .gsub,.gate-card.ok .gate-lock,.gate-card.ok>h3{display:none}
.gate-card.ok .done{display:flex}

/* value strip + footer */
.vals{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 40px}
.vals div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px}
.vals b{font-size:14.5px;display:block;margin-bottom:3px}
.vals p{color:var(--mute);font-size:13px}
@media(max-width:720px){.vals{grid-template-columns:1fr}}
.t-foot{border-top:1px solid var(--line);padding:26px 0 40px;color:#8a82a3;font-size:12.5px;text-align:center}
.t-foot .in{max-width:760px;margin:0 auto;padding:0 24px}
.t-foot a{color:var(--purple);font-weight:800}

/* ---------------- wizard ---------------- */
.wz{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 30px 70px rgba(31,27,46,.1);padding:22px 26px 30px;max-width:640px;margin:30px auto}
.wz-top{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.wz-back{
  width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line);background:#fff;cursor:pointer;
  font-size:15px;color:var(--mute);font-weight:800;flex:none;transition:all .15s;
}
.wz-back:hover{border-color:var(--purple);color:var(--purple)}
.wz-prog{flex:1;height:6px;border-radius:99px;background:#EDE7F4;overflow:hidden}
.wz-prog i{display:block;height:100%;width:0;background:var(--grad);border-radius:99px;transition:width .35s cubic-bezier(.5,0,.2,1)}
.wz-count{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--mute);flex:none}
.wz-step{animation:wzstep .32s cubic-bezier(.4,0,.2,1)}
@keyframes wzstep{from{opacity:0;transform:translateY(14px)}}
.wz-q{font-size:clamp(20px,2.6vw,25px);font-weight:900;letter-spacing:-.01em;line-height:1.25;margin-bottom:6px}
.wz-help{color:var(--mute);font-size:14px;margin-bottom:16px}
.wz-q + .wz-opts,.wz-q + .wz-select{margin-top:16px}
.wz-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wz-opts.one{grid-template-columns:1fr}
@media(max-width:560px){.wz-opts{grid-template-columns:1fr}}
.wz-opt{
  display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;
  background:#FAF8FF;border:1.5px solid var(--line);border-radius:14px;padding:13px 15px;
  font-family:'Inter',sans-serif;transition:all .15s;position:relative;
}
.wz-opt:hover{border-color:rgba(157,95,232,.55);transform:translateY(-1px)}
.wz-opt .e{font-size:22px;flex:none}
.wz-opt .t{flex:1;min-width:0}
.wz-opt .t b{display:block;font-size:14.5px;font-weight:800;color:var(--ink);line-height:1.3}
.wz-opt .t small{display:block;font-size:12px;color:var(--mute);font-weight:700;margin-top:1px}
.wz-opt .tk{
  width:20px;height:20px;border-radius:50%;border:2px solid #D9D2E9;color:transparent;flex:none;
  display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;transition:all .15s;
}
.wz-opt.on{border-color:var(--purple);background:#F6F1FE;box-shadow:0 6px 18px rgba(123,63,228,.14)}
.wz-opt.on .tk{background:var(--grad);border-color:transparent;color:#fff}
.wz-select{
  width:100%;font-family:'Inter',sans-serif;font-size:15px;font-weight:700;color:var(--ink);
  background:#FAF8FF;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;outline:none;margin-bottom:14px;
}
.wz-select:focus{border-color:var(--purple)}
.wz-next{margin-top:16px;width:100%}
.wz-next:disabled{opacity:.45;cursor:not-allowed;transform:none !important;box-shadow:none !important}
/* analysis moment */
.wz-an{text-align:center;padding:18px 0 6px}
.wz-spin{
  width:46px;height:46px;border-radius:50%;margin:0 auto 16px;
  border:4px solid #EDE7F4;border-top-color:var(--purple);animation:wzspin .9s linear infinite;
}
@keyframes wzspin{to{transform:rotate(360deg)}}
.wz-an h3{font-size:19px;font-weight:900;margin-bottom:14px}
.wz-an ul{list-style:none;display:inline-flex;flex-direction:column;gap:8px;text-align:left}
.wz-an li{font-size:14px;font-weight:700;color:#B9B2CC;transition:color .3s}
.wz-an li em{font-style:normal;opacity:0;transition:opacity .3s;color:#0E9F6E;font-weight:900}
.wz-an li.ok{color:var(--ink)}
.wz-an li.ok em{opacity:1}

/* ---------------- report ---------------- */
#report{display:none;margin:30px 0 40px}
#report.show{display:block}
.report{background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:0 34px 80px rgba(31,27,46,.13)}
.rp-head{position:relative;background:var(--grad);color:#fff;padding:26px 30px 24px;overflow:hidden}
.rp-head::after{content:"";position:absolute;right:-70px;top:-90px;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.14)}
.rp-head .rp-tag{font-size:10.5px;font-weight:800;letter-spacing:.24em;opacity:.85;display:block;margin-bottom:7px}
.rp-head h2{font-size:clamp(21px,3vw,28px);font-weight:900;letter-spacing:-.01em;line-height:1.2;position:relative;z-index:1}
.rp-head p{margin-top:9px;font-size:14.5px;opacity:.94;max-width:600px;position:relative;z-index:1;line-height:1.55}
.rp-meta{display:flex;gap:16px;margin-top:13px;font-size:11px;font-weight:800;letter-spacing:.1em;opacity:.85}
.rp-body{padding:24px 26px 26px}
.rp-cols{display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:center;margin-bottom:20px}
@media(max-width:680px){.rp-cols{grid-template-columns:1fr;justify-items:center;text-align:center}}
.rp-free{display:flex;flex-direction:column;gap:9px;margin-bottom:18px}
.callout{
  display:flex;gap:11px;align-items:flex-start;border-radius:12px;padding:11px 14px;font-size:13.5px;font-weight:700;
  background:#F6F1FE;border:1px solid rgba(157,95,232,.35);
}
.callout.act{background:#FFF9EC;border-color:rgba(245,194,66,.55)}
.callout.good{background:#E7F9F1;border-color:#B5EBD3}
.callout .ic{font-size:17px;flex:none;margin-top:1px}
.callout small{display:block;font-weight:700;color:var(--mute);font-size:12.5px;margin-top:1px}
.rp-edit{margin-top:14px;text-align:center}
.rp-edit button{
  background:none;border:none;cursor:pointer;font-family:'Inter',sans-serif;font-size:13px;font-weight:800;
  color:var(--mute);text-decoration:underline;text-underline-offset:3px;
}
.rp-edit button:hover{color:var(--purple)}
/* score gauge */
.gauge{position:relative;width:190px}
.gauge svg{display:block;width:100%}
.gauge .gv{position:absolute;left:0;right:0;top:56%;text-align:center}
.gauge .gv b{font-size:40px;font-weight:900;letter-spacing:-.03em;line-height:1;display:block}
.gauge .gv span{font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--mute)}
/* stage strip (timeline tool) */
.stages{display:flex;gap:6px;width:100%}
.stages .st{flex:1;text-align:center}
.stages .st i{display:block;height:9px;border-radius:99px;background:#EDE7F4;margin-bottom:7px;position:relative;overflow:hidden}
.stages .st i em{position:absolute;inset:0;background:var(--grad);opacity:.85;border-radius:99px}
.stages .st b{font-size:11px;font-weight:800;display:block;line-height:1.3}
.stages .st small{font-size:10px;color:var(--mute);font-weight:700}

/* Space Grotesk display type (matched to Salvo header typography) */
.wz-q,.wz-an h3,.gate-card h3,.gate-card .done h3,.rp-head h2,.tcard h2,
.res .big,.gauge .gv b,.artifact .a-head b{font-family:'Space Grotesk',sans-serif}
.wz-q,.rp-head h2,.tcard h2{font-weight:700;letter-spacing:-.02em}
