/* 1. Base */
* { box-sizing: border-box; }
body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Arial, sans-serif; background: #f4f5f7; color: #161616; font-size: 14px; line-height: 1.55; min-height: 100vh; }
button { font-size: 13.5px; cursor: pointer; border-radius: 10px; }
button:disabled { opacity: .6; cursor: default; }
label { display: block; margin: 12px 0 6px; font-size: 13px; font-weight: 600; color: #333; }
input, select { width: 100%; padding: 11px 12px; border: 1px solid #d4d1cb; border-radius: 10px; font-size: 14px; background: #fff; transition: border-color .15s, box-shadow .15s; }
input::placeholder { color: #aaa; }
input:focus, select:focus { border-color: #111; outline: none; box-shadow: 0 0 0 3px rgba(0,0,0,.08); }
a { color: #0b57d0; }

/* 2. Layout */
.topbar { background: rgba(255,255,255,.9); backdrop-filter: blur(8px); border-bottom: 1px solid #e6e4df; position: sticky; top: 0; z-index: 10; }
.topbar-inner { max-width: 640px; margin: 0 auto; padding: 12px 20px; display: flex; justify-content: space-between; align-items: center; }
.container { max-width: 640px; margin: 0 auto; padding: 24px 20px 40px; }
.grid { display: grid; grid-template-columns: 1fr 180px; gap: 12px; }
.hidden { display: none !important; }
img { max-width: 100%; }

/* 4. Mobile */
@media (max-width: 560px) {
  .grid { grid-template-columns: 1fr; }
  .container { padding: 16px 14px 32px; }
  .topbar-inner { padding: 10px 14px; }
  .hero h1 { font-size: 20px; }
  .card { padding: 14px; border-radius: 14px; }
  .steps { gap: 6px; }
  .steps li { font-size: 11px; padding: 6px; }
  input, select { font-size: 16px; padding: 12px; }
  button.primary { padding: 14px 16px; min-height: 44px; }
  .badge { white-space: nowrap; }
}

/* 3. Components */
.brand { display: flex; align-items: center; gap: 8px; }
.brand-dot { width: 10px; height: 10px; border-radius: 50%; background: #111; }
.badge { font-size: 11px; color: #2e7d32; background: #e8f5e9; border: 1px solid #c8e6c9; padding: 3px 10px; border-radius: 999px; }
.hero h1 { font-size: 24px; margin: 0 0 4px; letter-spacing: -.02em; }
.sub { color: #666; margin: 0 0 14px; font-size: 13.5px; }
.steps { list-style: none; display: flex; gap: 8px; padding: 0; margin: 0 0 18px; }
.steps li { flex: 1; background: #fff; border: 1px solid #e6e4df; border-radius: 10px; padding: 8px; font-size: 12px; color: #555; display: flex; align-items: center; gap: 8px; }
.steps span { width: 22px; height: 22px; border-radius: 50%; background: #111; color: #fff; font-size: 12px; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.card { background: #fff; border: 1px solid #e6e4df; border-radius: 16px; padding: 18px; margin: 0 0 16px; box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.06); }
.card-title { font-size: 14px; }
.field { margin-bottom: 4px; }
.step-err { display: none; color: #b3261e; background: #fdecea; border: 1px solid #f5c6c2; font-size: 12.5px; margin-top: 10px; padding: 8px 10px; border-radius: 8px; }
button.primary { background: #111; color: #fff; border: 1px solid #111; padding: 12px 16px; font-weight: 600; transition: transform .1s, background .15s; }
button.primary:hover { background: #2b2b2b; }
button.primary:active { transform: scale(.99); }
.btn-full { width: 100%; margin-top: 14px; }
.hint { font-size: 12px; color: #777; margin: 8px 0 0; }
.link-row { border: 1px dashed #d4d1cb; background: #faf9f7; padding: 10px 12px; margin-top: 10px; border-radius: 10px; font-size: 13px; }
.link-row:empty { display: none; }
.link-row a { font-weight: 600; text-decoration: none; }
.link-row a:hover { text-decoration: underline; }
.result { white-space: pre-wrap; border: 1px solid #e6e4df; background: #faf9f7; padding: 10px 12px; margin-top: 12px; font-size: 12.5px; border-radius: 10px; min-height: 20px; }
.result:empty { display: none; }
.status-row { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; font-size: 13px; color: #333; }
.pill { font-size: 11.5px; font-weight: 600; padding: 3px 10px; border-radius: 999px; border: 1px solid; }
.pill.gray { color: #555; background: #f1f1f1; border-color: #ddd; }
.pill.amber { color: #8a5a00; background: #fef3d6; border-color: #f5d67b; }
.pill.blue { color: #0b57d0; background: #e8f0fe; border-color: #aecbfa; }
.pill.green { color: #1b6b23; background: #e8f5e9; border-color: #a5d6a7; }
.pill.red { color: #b3261e; background: #fdecea; border-color: #f5c6c2; }
