:root {
    color-scheme: light;
    --accent: #f47a20;
    --green: #269c63;
    --ink: #273142;
    --muted: #667085;
    --line: #d9dee7;
    --surface: #fff;
    font-family: "Microsoft YaHei", "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: #f5f7fa; }
a { color: #1769aa; text-decoration: none; }
a:hover { text-decoration: underline; }
.account-header { min-height: 72px; padding: 18px max(20px, calc((100% - 1120px) / 2)); display: flex; align-items: center; justify-content: space-between; gap: 20px; background: var(--surface); border-bottom: 1px solid var(--line); }
.account-header .brand { color: var(--ink); font-size: 22px; font-weight: 700; line-height: 0; }
.account-header .brand:hover { text-decoration: none; }
.account-header .brand img { display: block; height: 72px; width: auto; }
.account-header nav { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.auth-shell, .page-shell { width: min(1120px, calc(100% - 32px)); margin: 36px auto; }
.auth-shell { min-height: 520px; display: grid; place-items: center; }
.auth-card, .page-card { width: 100%; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 10px 30px rgb(30 42 60 / 8%); }
.auth-card { max-width: 480px; padding: 34px; }
.page-card { padding: 30px; }
h1 { margin: 0 0 24px; font-size: 26px; }
h2 { margin-top: 28px; padding-bottom: 10px; border-bottom: 1px solid var(--line); font-size: 19px; }
label { display: block; margin-bottom: 16px; font-weight: 600; }
input, select, textarea, button { font: inherit; }
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), select, textarea { width: 100%; min-height: 42px; margin-top: 7px; padding: 9px 11px; border: 1px solid #b9c1cc; border-radius: 6px; background: #fff; }
input:focus, select:focus, textarea:focus { outline: 3px solid rgb(244 122 32 / 18%); border-color: var(--accent); }
button, .button { display: inline-block; border: 1px solid var(--accent); border-radius: 6px; padding: 10px 20px; cursor: pointer; background: #fff; color: var(--accent); }
button.primary, .button.primary { min-width: 150px; background: var(--accent); color: #fff; font-weight: 700; }
.register-card button.primary {
    display: block;
    width: fit-content;
    min-width: 240px;
    height: 48px;
    margin: 28px auto 4px;
    padding: 0 36px;
    border: 0;
    border-radius: 8px;
    background: #f47a20;
    box-shadow: 0 8px 18px rgb(244 122 32 / 28%);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 2px;
    cursor: pointer;
    transition: background-color 180ms ease, box-shadow 180ms ease;
}
.register-card button.primary:hover { background: #e06812; box-shadow: 0 10px 22px rgb(224 104 18 / 32%); }
.register-card button.primary:focus-visible { outline: 3px solid rgb(244 122 32 / 40%); outline-offset: 3px; }
.register-card button.primary:disabled { opacity: .65; box-shadow: none; cursor: wait; }
@media (prefers-reduced-motion: reduce) {
    .register-card button.primary { transition: none; }
}
button:disabled { opacity: .6; cursor: wait; }
.auth-card button.primary { width: 100%; }
.form-message { min-height: 24px; color: #b42318; }
.form-message.success { color: var(--green); }
.account-footer { padding: 28px 16px; text-align: center; color: var(--muted); }
.success-card { min-height: 380px; display: grid; place-items: center; text-align: center; }
.success-mark { color: var(--green); font-size: 54px; }
.terms { line-height: 1.85; }
.register-shell, .terms-shell { width: min(1120px, calc(100% - 32px)); margin: 36px auto; padding: 30px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 10px 30px rgb(30 42 60 / 8%); }
.register-tabs { display: flex; margin: 0 0 8px; border-bottom: 1px solid var(--line); }
.register-tabs button { flex: 1 1 0; min-width: 0; border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: transparent; color: var(--muted); font-size: 18px; font-weight: 700; }
.register-tabs button.curr { color: var(--accent); border-bottom-color: var(--accent); }
.register-panel[hidden] { display: none !important; }
.choice-line { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; margin-bottom: 16px; font-weight: 600; }
.choice-line label { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-weight: 600; }
.choice-line input { width: auto; min-height: 0; margin: 0; }
.cert-block[hidden] { display: none !important; }
.invoice-note { margin: 0 0 16px; padding: 12px 14px; background: #f5f5f5; color: var(--muted); line-height: 1.6; }
.register-card .lead, .field-help { color: var(--muted); }
.register-card fieldset { margin: 28px 0; padding: 24px; border: 1px solid var(--line); border-radius: 8px; }
.register-card legend { padding: 0 10px; font-size: 18px; font-weight: 700; }
.form-grid, .upload-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.region-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.full-field { width: 100%; }
.required, label b { color: #b42318; }
.agreement { display: flex; align-items: flex-start; gap: 8px; font-weight: 400; }
.agreement input { margin-top: 3px; }
.captcha-field { max-width: 360px; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 8px; }
.captcha-field span { grid-column: 1 / -1; }
.captcha-field input { margin: 0 !important; }
.captcha-field img { cursor: pointer; border: 1px solid var(--line); border-radius: 4px; }
label:has(input[type="file"]) { display: block; }
label:has(input[type="file"]) b { display: inline; }
label:has(input[type="file"]) input[type="file"] {
    display: block;
    width: 100%;
    max-width: 100%;
    margin-top: 8px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 400;
}
label:has(input[type="file"]) input[type="file"]::file-selector-button {
    margin-right: 12px;
    padding: 8px 16px;
    border: 1px solid #f47a20;
    border-radius: 6px;
    background: #fff7f2;
    color: #e06812;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    transition: background-color 180ms ease, color 180ms ease;
}
label:has(input[type="file"]) input[type="file"]::file-selector-button:hover {
    background: #f47a20;
    color: #fff;
}
.upload-grid input { display: block; margin: 0; }
.upload-preview { display: none; max-width: 180px; max-height: 120px; border: 1px solid var(--line); border-radius: 4px; object-fit: contain; }
.upload-preview[src]:not([hidden]) { display: block; }
.tag-list { min-height: 38px; display: flex; flex-wrap: wrap; gap: 8px; }
.tag { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; border-radius: 15px; background: #eef3f8; }
.tag button { padding: 0; border: 0; color: #b42318; background: transparent; }
.add-city { padding-top: 28px; }
.terms-shell { line-height: 1.85; }
.terms-back { margin-top: 32px; }
.success-icon { width: 72px; height: 72px; display: grid; place-items: center; border-radius: 50%; background: #e9f8f0; color: var(--green); font-size: 44px; }

@media (max-width: 700px) {
    .account-header { align-items: flex-start; flex-direction: column; }
    .auth-shell, .page-shell { width: min(100% - 20px, 1120px); margin: 14px auto; }
    .auth-card, .page-card { padding: 20px; border-radius: 8px; }
    .register-shell, .terms-shell { width: calc(100% - 20px); margin: 14px auto; padding: 18px; }
    .register-card fieldset { padding: 16px; }
    .form-grid, .upload-grid, .region-grid { grid-template-columns: 1fr; }
    .add-city { padding: 0 0 16px; }
}
