:root{
  --bg:#eef2f9;
  --bg-2:#e7edf7;
  --card:#ffffff;
  --text:#0f172a;
  --muted:#64748b;
  --line:#e2e8f0;
  --line-strong:#cbd5e1;
  --primary:#2563eb;
  --primary-dark:#1d4ed8;
  --primary-soft:#eff4ff;
  --accent:#0ea5e9;
  --success-bg:#ecfdf5;--success:#15803d;
  --error-bg:#fef2f2;--error:#b91c1c;
  --warning-bg:#fff7ed;--warning:#9a3412;
  --info-bg:#eff6ff;--info:#1d4ed8;
  --shadow:0 1px 2px rgba(15,23,42,.04),0 12px 28px rgba(15,23,42,.06);
  --shadow-hover:0 2px 4px rgba(15,23,42,.06),0 18px 40px rgba(15,23,42,.10);
  --radius:16px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  background:radial-gradient(1200px 600px at 80% -10%,#dbe7ff 0%,rgba(219,231,255,0) 60%),linear-gradient(180deg,#eef3fc 0%,#eaeef7 100%);
  background-attachment:fixed;
  color:var(--text);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
.container{max-width:1180px;margin:0 auto;padding:28px 18px 64px}

/* Cards */
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:22px 22px;
  margin-bottom:18px;
  transition:box-shadow .2s ease,transform .2s ease;
}
.card:hover{box-shadow:var(--shadow-hover)}

/* Hero */
.hero{
  background:linear-gradient(135deg,#1d4ed8 0%,#2563eb 45%,#0ea5e9 100%);
  color:#fff;border:none;padding:34px 30px;
}
.hero .eyebrow{color:rgba(255,255,255,.85)}
.hero h1{color:#fff}
.hero .subtext{color:rgba(255,255,255,.92)}
.eyebrow{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--primary)}
h1{margin:0;font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:800;letter-spacing:-.02em}
h2{margin:0;font-size:1.2rem;font-weight:750;letter-spacing:-.01em}
h3{margin:0;font-size:1rem;font-weight:700}
.subtext{margin:10px 0 0;font-size:.98rem;max-width:70ch}
.hint,.result-meta,.result-submeta,#summary{color:var(--muted);font-size:.9rem}

/* Section heading accent */
.card > h2:first-child,
.card > .row:first-child h2{
  position:relative;padding-left:14px;
}
.card > h2:first-child::before,
.card > .row:first-child h2::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:5px;height:1.1em;border-radius:999px;background:linear-gradient(180deg,var(--primary),var(--accent));
}

.warning{color:var(--warning);background:var(--warning-bg);border:1px solid #fed7aa;padding:11px 13px;border-radius:12px;font-size:.9rem}

/* Layout helpers */
.grid{display:grid;gap:14px}
.two-col{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.three-col{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.full-span{grid-column:1 / -1}
.row{display:flex;gap:12px;align-items:center}
.between{justify-content:space-between}
.wrap{flex-wrap:wrap}
.top-gap{margin-top:14px}

/* Forms */
label{display:grid;gap:8px}
label span{font-weight:650;font-size:.92rem;color:#334155}
input,select,textarea{
  width:100%;border:1px solid var(--line-strong);border-radius:12px;
  padding:11px 13px;font-size:15px;font-family:inherit;background:#fff;color:var(--text);
  transition:border-color .15s ease,box-shadow .15s ease;
}
input::placeholder,textarea::placeholder{color:#94a3b8}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.16)}

/* Buttons */
button{
  border:none;border-radius:12px;padding:11px 17px;background:var(--primary);color:#fff;
  font-weight:700;font-size:.92rem;cursor:pointer;
  transition:background .15s ease,transform .08s ease,box-shadow .15s ease;
  box-shadow:0 1px 2px rgba(37,99,235,.25);
}
button:hover{background:var(--primary-dark);box-shadow:0 4px 12px rgba(37,99,235,.28)}
button:active{transform:translateY(1px)}
button.secondary{background:#fff;color:#334155;border:1px solid var(--line-strong);box-shadow:none}
button.secondary:hover{background:#f8fafc;border-color:var(--primary);color:var(--primary-dark)}
button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}

/* Status banners */
.status{margin-top:14px;border-radius:12px;padding:12px 14px;font-weight:600;font-size:.92rem;border:1px solid transparent}
.status.info{background:var(--info-bg);color:var(--info);border-color:#bfdbfe}
.status.success{background:var(--success-bg);color:var(--success);border-color:#bbf7d0}
.status.error{background:var(--error-bg);color:var(--error);border-color:#fecaca}
.status.warning{background:var(--warning-bg);color:var(--warning);border-color:#fed7aa}

/* Account / result lists */
.accounts,.results,#accountStats,#topForms{display:grid;gap:12px}
.empty{color:var(--muted)}
.account-card,.result-card,.mini-card,.summary-card,.top-row,.import-help{
  border:1px solid var(--line);border-radius:14px;padding:15px;background:#fff;
}
.import-help{background:#f8fafc}
.result-card,.top-row{display:grid;gap:12px}
.result-card{transition:border-color .15s ease}
.result-card:hover{border-color:var(--line-strong)}
@media(min-width:720px){.result-card,.top-row{grid-template-columns:1fr auto;align-items:center}}
.result-title{margin:0 0 6px}

/* Badges */
.badge{padding:7px 13px;border-radius:999px;font-weight:700;font-size:12.5px;border:1px solid var(--line)}
.badge.ready{background:var(--success-bg);color:var(--success);border-color:#bbf7d0}
.badge.missing{background:var(--warning-bg);color:var(--warning);border-color:#fed7aa}
.badge.error{background:var(--error-bg);color:var(--error);border-color:#fecaca}

/* Stat cards */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:14px;margin-top:14px}
.stat-card{
  position:relative;overflow:hidden;border:1px solid var(--line);border-radius:16px;
  padding:18px 16px;background:linear-gradient(180deg,#ffffff 0%,#f7faff 100%);
}
.stat-card::before{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:linear-gradient(90deg,var(--primary),var(--accent))}
.stat-card .label{margin:6px 0 8px;color:var(--muted);font-size:12.5px;font-weight:650;text-transform:uppercase;letter-spacing:.03em}
.stat-card .value{margin:0;font-size:2.1rem;font-weight:800;line-height:1;color:#0f172a}

.mini-card h3{margin-bottom:12px}

/* Pills */
.pills{display:flex;gap:8px;flex-wrap:wrap}
.pill,.count{border-radius:999px;padding:8px 12px;font-size:13px;font-weight:700;border:1px solid var(--line);background:#fff}
.count{min-width:72px;text-align:center;background:var(--primary-soft);color:var(--primary-dark);border-color:#dbe7ff}

code{background:#eef2ff;color:#3730a3;padding:2px 6px;border-radius:6px;font-size:.86em}
ul{margin:8px 0 0 18px;padding:0}
li{margin:3px 0}
a{color:var(--primary-dark)}

/* Scrollbar polish */
::-webkit-scrollbar{height:10px;width:10px}
::-webkit-scrollbar-thumb{background:#c7d2e3;border-radius:999px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:#aebed6;border:2px solid transparent;background-clip:padding-box}
