.es-app{--es-primary:#6366f1;--es-primary-dark:#4f46e5;--es-primary-light:#eef2ff;--es-text:#1e293b;--es-text-muted:#64748b;--es-border:#e2e8f0;--es-bg:#f1f5f9;--es-success:#10b981;--es-danger:#ef4444;--es-radius:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;color:var(--es-text);line-height:1.6;box-sizing:border-box}
.es-app *,.es-app *::before,.es-app *::after{box-sizing:border-box}
.es-card{background:#fff;border-radius:var(--es-radius);box-shadow:0 4px 24px rgba(15,23,42,.06),0 1px 3px rgba(15,23,42,.04);padding:32px;max-width:760px;margin:0 auto}
.es-tabs{display:flex;gap:4px;margin-bottom:24px;background:var(--es-bg);padding:4px;border-radius:12px}
.es-tab{flex:1;padding:10px 16px;border:none;background:transparent;border-radius:8px;font-size:14px;font-weight:600;color:var(--es-text-muted);cursor:pointer;font-family:inherit;transition:all .15s}
.es-tab.active{background:#fff;color:var(--es-primary-dark);box-shadow:0 1px 3px rgba(15,23,42,.1)}
.es-card-header{margin-bottom:20px}
.es-card-header h2{margin:0 0 6px;font-size:22px;font-weight:700;color:var(--es-text);letter-spacing:-.01em}
.es-card-header p{margin:0;color:var(--es-text-muted);font-size:14px}
.es-field{margin-bottom:20px}
.es-label{display:block;font-size:13px;font-weight:600;color:var(--es-text);margin-bottom:8px}
.es-hint{display:block;font-size:12px;color:var(--es-text-muted);margin-top:6px}
.es-hint.is-error{color:#ef4444}
.es-input,.es-textarea,.es-select{width:100%;padding:11px 14px;border:1.5px solid var(--es-border);border-radius:10px;font-size:14px;font-family:inherit;color:var(--es-text);background:#fff;transition:border-color .15s,box-shadow .15s;outline:none}
.es-input:focus,.es-textarea:focus,.es-select:focus{border-color:var(--es-primary);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.es-input.is-error,.es-select.is-error{border-color:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.12)}
.es-textarea{resize:vertical;min-height:120px}
.es-char-counter{font-size:12px;color:#64748b;text-align:right;margin-top:4px}
.es-char-counter.is-error{color:#ef4444;font-weight:600}
.es-segment{display:inline-flex;background:var(--es-bg);border-radius:10px;padding:4px;gap:4px}
.es-segment input{position:absolute;opacity:0;pointer-events:none}
.es-segment label{padding:8px 20px;border-radius:7px;font-size:14px;font-weight:600;color:var(--es-text-muted);cursor:pointer;transition:all .15s;user-select:none}
.es-segment input:checked+label{background:#fff;color:var(--es-primary-dark);box-shadow:0 1px 3px rgba(15,23,42,.1)}
.es-dropzone{border:2px dashed var(--es-border);border-radius:12px;padding:28px 20px;text-align:center;cursor:pointer;transition:all .15s;background:#fafbfc}
.es-dropzone:hover,.es-dropzone.is-dragover{border-color:var(--es-primary);background:var(--es-primary-light)}
.es-dropzone.has-file{border-style:solid;border-color:var(--es-success);background:#f0fdf4}
.es-dropzone svg{width:32px;height:32px;color:var(--es-text-muted);margin-bottom:8px}
.es-dropzone.has-file svg{color:var(--es-success)}
.es-dropzone .es-dz-title{font-size:14px;font-weight:600;color:var(--es-text);word-break:break-all}
.es-dropzone .es-dz-sub{font-size:12px;color:var(--es-text-muted);margin-top:4px}
.es-dropzone input[type=file]{display:none}
.es-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.es-row{grid-template-columns:1fr}}
.es-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border:none;border-radius:10px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .18s;text-decoration:none;line-height:1.2}
.es-btn-primary{background:linear-gradient(135deg,var(--es-primary),var(--es-primary-dark));color:#fff;box-shadow:0 4px 14px rgba(99,102,241,.35);width:100%;padding:14px}
.es-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px rgba(99,102,241,.45);color:#fff}
.es-btn:disabled{opacity:.6;cursor:not-allowed}
.es-btn-ghost{background:#fff;color:var(--es-text);border:1.5px solid var(--es-border)}
.es-btn-ghost:hover{border-color:var(--es-primary);color:var(--es-primary)}
.es-result{margin-top:20px;border-radius:12px;padding:18px;font-size:14px}
.es-result-success{background:#f0fdf4;border:1px solid #bbf7d0}
.es-result-error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}
.es-result-title{font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:6px;color:#166534}
.es-result-error .es-result-title{color:#991b1b}
.es-code-display{display:flex;gap:8px;align-items:center;margin-bottom:14px}
.es-code-display .es-code{flex:1;padding:14px;border:2px dashed #a5b4fc;border-radius:10px;background:#fff;text-align:center;font-family:Menlo,Monaco,Consolas,monospace;font-size:24px;font-weight:700;letter-spacing:.15em;color:var(--es-primary-dark)}
.es-share-text-box{background:#fff;border:1px solid #d1fae5;border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.7;color:var(--es-text);white-space:pre-wrap;word-break:break-word;margin-bottom:8px}
.es-page-icon{width:48px;height:48px;border-radius:12px;background:var(--es-primary-light);display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--es-primary)}
.es-page-icon svg{width:24px;height:24px}
.es-code-input{width:100%;padding:18px;border:2px solid var(--es-border);border-radius:12px;font-family:Menlo,Monaco,Consolas,monospace;font-size:22px;font-weight:700;letter-spacing:.2em;text-align:center;color:var(--es-text);text-transform:uppercase;transition:border-color .15s,box-shadow .15s;outline:none;background:#fafbfc}
.es-code-input:focus{border-color:var(--es-primary);box-shadow:0 0 0 4px rgba(99,102,241,.12);background:#fff}
.es-content-box{background:#f8fafc;border:1px solid var(--es-border);border-radius:10px;padding:18px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:14px;line-height:1.7;white-space:pre-wrap;word-break:break-word;max-height:60vh;overflow:auto;margin-bottom:16px}
.es-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.es-file-info{display:flex;align-items:center;gap:14px;padding:16px;background:#f8fafc;border:1px solid var(--es-border);border-radius:12px;margin-bottom:20px}
.es-file-info .es-file-icon{width:48px;height:48px;border-radius:10px;background:var(--es-primary-light);color:var(--es-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.es-file-icon svg{width:24px;height:24px}
.es-file-meta{min-width:0}
.es-file-name{font-weight:600;font-size:15px;color:var(--es-text);word-break:break-all}
.es-file-sub{font-size:12px;color:var(--es-text-muted);margin-top:2px}
.es-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;background:var(--es-primary-light);color:var(--es-primary-dark)}
.es-result-meta{font-size:12px;color:#15803d;margin-top:8px}

/* ===== 验证码 ===== */
.es-captcha-chars{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.es-captcha-char{width:56px;height:56px;border:2px solid var(--es-border);border-radius:10px;background:#fff;font-size:22px;font-weight:700;font-family:inherit;color:var(--es-primary-dark);cursor:pointer;transition:all .15s}
.es-captcha-char:hover:not(:disabled){border-color:var(--es-primary);box-shadow:0 4px 10px rgba(99,102,241,.2);transform:translateY(-1px)}
.es-captcha-char:disabled{opacity:.3;cursor:not-allowed;background:var(--es-bg)}
.es-captcha-answer{min-height:56px;padding:8px 10px;border:2px dashed #c7d2fe;border-radius:10px;background:#f8fafc;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.es-captcha-answer.is-empty{color:#94a3b8;font-size:13px;padding:16px 10px}
.es-captcha-picked-char{width:40px;height:40px;border:none;border-radius:8px;background:#eef2ff;color:#4f46e5;font-size:18px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}
.es-captcha-picked-char:hover{background:#fef2f2;color:#dc2626}

/* ===== 免责声明 ===== */
.es-disclaimer{background:#fef3c7;border:1px solid #fcd34d;border-radius:10px;padding:14px 16px;margin-bottom:20px;font-size:13px;line-height:1.7;color:#78350f}
.es-disclaimer strong{display:block;margin-bottom:6px;font-size:13px}
.es-disclaimer p{margin:0}

@media(max-width:560px){.es-card{padding:24px 20px}.es-card-header h2{font-size:19px}.es-code-display .es-code{font-size:20px}}
/* ===== 提取端风险提示 ===== */
.es-risk-warning{margin-top:24px;padding:14px 16px;border-radius:10px;background:#fff7ed;border:1px solid #fdba74;color:#7c2d12;font-size:13px;line-height:1.7}
.es-risk-title{display:flex;align-items:center;gap:6px;font-weight:700;margin-bottom:8px;color:#c2410c;font-size:13px}
.es-risk-title svg{flex-shrink:0}
.es-risk-list{margin:0;padding-left:20px}
.es-risk-list li{margin:4px 0}
.es-risk-list li b{color:#7c2d12}