/* =========================================================
   IntelliMeter — Portal shell (client + vend)
   Flat design, same tokens as the marketing site. No gradients.
   ========================================================= */
:root{
  --navy:#0C2438; --navy-2:#102E45; --navy-3:#183D59; --navy-4:#22506F;
  --blue:#1C74BC; --blue-d:#12547E; --blue-l:#2E93C9; --blue-xl:#D5E8F4;
  --green:#5FA733; --green-d:#4C8A28; --green-l:#7CB342; --green-xl:#E4F1D8;
  --orange:#F5821F; --orange-d:#DC6E0E; --orange-l:#F9A81D; --orange-xl:#FDE7CF;

  --paper:#EEF3F1; --paper-2:#FFFFFF; --paper-3:#E5ECE9;
  --ink:#132029; --slate:#54636B; --slate-2:#849299;

  --line:rgba(19,32,41,.13); --line-2:rgba(19,32,41,.07);
  --line-d:rgba(255,255,255,.15); --line-d2:rgba(255,255,255,.07);

  --sans:"IBM Plex Sans",system-ui,-apple-system,sans-serif;
  --display:"Space Grotesk",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
  --r:14px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:-.02em;line-height:1.12;color:var(--ink)}
p{color:var(--slate)}
.mono{font-family:var(--mono)}

/* ---------- buttons (identical to marketing site) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-family:var(--sans);font-weight:600;font-size:.95rem;padding:.85rem 1.3rem;border-radius:8px;border:1.5px solid transparent;cursor:pointer;transition:.16s ease;white-space:nowrap;line-height:1;width:100%}
.btn-primary{background:var(--orange);color:#fff;border-color:var(--orange)}
.btn-primary:hover{background:var(--orange-d);border-color:var(--orange-d)}
.btn-primary:disabled{background:var(--orange-l);border-color:var(--orange-l);cursor:not-allowed;opacity:.75}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--navy);background:var(--paper-3)}
.btn-navy{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-navy:hover{background:var(--navy-3);border-color:var(--navy-3)}

/* ---------- shell: split panel ---------- */
.shell{min-height:100vh;display:grid;grid-template-columns:.86fr 1fr}
.side{background:var(--navy);color:#fff;position:relative;overflow:hidden;padding:52px 56px;display:flex;flex-direction:column}
.side .grid-tex{position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:radial-gradient(rgba(230,237,241,.09) 1px,transparent 1px);background-size:26px 26px}
.side .blob{position:absolute;border-radius:50%;pointer-events:none}
.side .blob.o{width:420px;height:420px;top:-140px;right:-140px;background:var(--orange);opacity:.10}
.side .blob.g{width:380px;height:380px;bottom:-160px;left:-100px;background:var(--green);opacity:.09}
.side-top{position:relative;z-index:2;display:flex;align-items:center;gap:.65rem}
.side-top img{height:34px;width:auto}
.side-top span{font-family:var(--display);font-weight:700;font-size:1.18rem}
.side-top span b{color:#fff}.side-top span i{font-style:normal;color:var(--green-l)}
.side-mid{position:relative;z-index:2;margin-top:auto;margin-bottom:auto;padding:40px 0}
.side-mid h1{color:#fff;font-size:clamp(1.7rem,2.6vw,2.3rem);max-width:16ch}
.side-mid p{color:#AFC2CC;margin-top:1rem;max-width:38ch;font-size:1.02rem}
.side-list{list-style:none;margin-top:2.2rem;display:flex;flex-direction:column;gap:1rem}
.side-list li{display:flex;align-items:flex-start;gap:.8rem;color:#D8E3E9;font-size:.96rem}
.side-list .ic{flex:0 0 auto;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:.82rem}
.side-list .ic.o{background:var(--orange);color:#fff}
.side-list .ic.b{background:var(--blue);color:#fff}
.side-list .ic.g{background:var(--green);color:#08240a}
.side-bottom{position:relative;z-index:2;font-size:.85rem;color:#8fa3b0}
.side-bottom a{color:var(--orange-l);font-weight:600}

.main{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 32px;background:var(--paper)}
.main-top{width:100%;max-width:420px;display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}
.back-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.86rem;color:var(--slate);font-weight:500}
.back-link:hover{color:var(--ink)}
.mobile-brand{display:none;align-items:center;gap:.5rem}
.mobile-brand img{height:28px}
.mobile-brand span{font-family:var(--display);font-weight:700;color:var(--navy)}

.card{width:100%;max-width:420px;background:var(--paper-2);border:1px solid var(--line);border-radius:18px;padding:38px;box-shadow:0 40px 80px -50px rgba(12,36,56,.35)}
.card-head{margin-bottom:1.7rem}
.card-head .ey{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:.72rem;color:var(--blue);margin-bottom:.7rem;letter-spacing:.03em;text-transform:uppercase}
.card-head .ey::before{content:"";width:18px;height:3px;background:var(--orange);border-radius:2px}
.card-head h2{font-size:1.55rem}
.card-head p{margin-top:.5rem;font-size:.95rem}

.field{margin-bottom:1.05rem}
.field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:.4rem;color:var(--ink)}
.field .hint{font-weight:400;color:var(--slate-2);font-size:.78rem}
.field input,.field select,.field textarea{width:100%;font-family:var(--sans);font-size:.98rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:.75rem .85rem;transition:.15s}
.field input::placeholder,.field textarea::placeholder{color:var(--slate-2)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px rgba(28,116,188,.13)}
.field textarea{resize:vertical;min-height:100px}
.field-error{display:none;color:var(--orange-d);font-size:.78rem;margin-top:.4rem;font-weight:500}
.field.err input,.field.err textarea{border-color:var(--orange-d)}
.field.err .field-error{display:block}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}

.check-row{display:flex;align-items:center;justify-content:space-between;margin:1.2rem 0 1.4rem;font-size:.88rem}
.check{display:flex;align-items:center;gap:.55rem;color:var(--slate)}
.check input{width:16px;height:16px;accent-color:var(--orange)}
.link{color:var(--blue);font-weight:600}
.link:hover{color:var(--blue-d)}

.card-foot{text-align:center;margin-top:1.5rem;font-size:.9rem;color:var(--slate)}

.divider{display:flex;align-items:center;gap:.8rem;margin:1.4rem 0;color:var(--slate-2);font-size:.78rem}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line)}

.alert{display:flex;gap:.7rem;align-items:flex-start;padding:.85rem 1rem;border-radius:10px;font-size:.87rem;margin-bottom:1.2rem}
.alert.error{background:var(--orange-xl);color:var(--orange-d)}
.alert.ok{background:var(--green-xl);color:var(--green-d)}
.alert i{margin-top:.15rem}

/* success state */
.success{text-align:center;padding:10px 0}
.success .tick{width:60px;height:60px;margin:0 auto 16px;border-radius:50%;background:var(--green-xl);display:grid;place-items:center;color:var(--green);font-size:1.5rem}
.success h2{font-size:1.4rem;margin-bottom:.5rem}
.success p{font-size:.95rem;max-width:32ch;margin:0 auto}

/* tabs (vend page) */
.tabs{display:flex;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:4px;margin-bottom:1.3rem}
.tab{flex:1;text-align:center;padding:.6rem .5rem;border-radius:7px;font-size:.85rem;font-weight:600;color:var(--slate);cursor:pointer;transition:.15s;border:none;background:transparent;font-family:var(--sans)}
.tab.on{background:#fff;color:var(--ink);box-shadow:0 4px 12px -6px rgba(12,36,56,.2)}

/* token result */
.token-box{background:var(--navy);border-radius:12px;padding:22px;text-align:center;margin:1.2rem 0}
.token-box .tk-label{font-family:var(--mono);font-size:.7rem;color:#8fa3b0;letter-spacing:.08em;margin-bottom:.6rem}
.token-box .tk-code{font-family:var(--mono);font-size:1.32rem;font-weight:500;color:#fff;letter-spacing:.04em;word-break:break-all}
.token-meta{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-top:1.2rem}
.tm{background:var(--paper);border-radius:10px;padding:.8rem .9rem}
.tm .tmk{font-family:var(--mono);font-size:.68rem;color:var(--slate-2);letter-spacing:.05em}
.tm .tmv{font-size:.98rem;font-weight:600;margin-top:.2rem}
.copy-row{display:flex;gap:.6rem;margin-top:1rem}
.copy-row .btn{padding:.7rem 1rem;font-size:.86rem}

.spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .7s linear infinite;display:none}
.btn.loading .spinner{display:inline-block}
.btn.loading .btn-text{opacity:.85}
@keyframes spin{to{transform:rotate(360deg)}}

@media (max-width:920px){
  .shell{grid-template-columns:1fr}
  .side{display:none}
  .mobile-brand{display:flex}
  .main{padding-top:32px}
}
