:root { color-scheme: light; --navy:#101f38; --blue:#2667ff; --sky:#eef4ff; --line:#dbe3ef; --muted:#5d6b7d; }
* { box-sizing:border-box; }
body { margin:0; background:#f4f7fb; color:var(--navy); font-family:"Segoe UI",Arial,sans-serif; }
.topbar { align-items:center; background:#fff; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; min-height:72px; padding:0 5vw; }
.brand { align-items:center; color:var(--navy); display:flex; font-weight:750; gap:12px; text-decoration:none; }
.brand-mark { align-items:center; background:var(--blue); border-radius:12px; color:#fff; display:inline-flex; height:42px; justify-content:center; width:42px; }
.language { border:1px solid var(--line); border-radius:10px; color:var(--navy); padding:9px 14px; text-decoration:none; }
.page { margin:0 auto; max-width:900px; padding:56px 20px 80px; }
.hero { margin-bottom:28px; text-align:center; }
.eyebrow { color:var(--blue); font-size:13px; font-weight:800; letter-spacing:.12em; margin:0 0 10px; text-transform:uppercase; }
h1 { font-size:clamp(34px,6vw,52px); letter-spacing:-.04em; margin:0 0 14px; }
.hero>p:not(.eyebrow) { color:var(--muted); font-size:18px; }
.privacy { background:var(--sky); border-radius:12px; color:#31537e; display:inline-block; font-size:14px; margin-top:10px; padding:12px 16px; }
.support-alert { background:#fff7df; border:1px solid #f0d384; border-radius:14px; color:#664c08; display:grid; gap:5px; margin:18px auto 0; max-width:720px; padding:15px 17px; text-align:left; }
.support-alert strong { font-size:14px; }
.support-alert span { font-size:13px; line-height:1.5; }
.success { background:#e9f8ef; border:1px solid #bfe9cf; border-radius:14px; color:#17683a; display:grid; gap:6px; margin-bottom:18px; padding:18px 20px; }
.success strong { font-size:17px; }
.success span { font-size:14px; line-height:1.5; }
.verification-form { display:grid; gap:18px; }
.card { background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:0 12px 30px rgba(35,58,91,.06); padding:26px; }
h2 { align-items:center; display:flex; font-size:20px; gap:10px; margin:0 0 22px; }
h2 span { align-items:center; background:var(--sky); border-radius:50%; color:var(--blue); display:inline-flex; font-size:14px; height:30px; justify-content:center; width:30px; }
.grid { display:grid; gap:18px; grid-template-columns:repeat(2,minmax(0,1fr)); }
label { color:#34445a; display:grid; font-size:14px; font-weight:650; gap:8px; }
.wide { grid-column:1/-1; }
input,select { background:#fff; border:1px solid #cbd6e4; border-radius:10px; color:var(--navy); font:inherit; min-height:46px; padding:10px 12px; width:100%; }
input:focus,select:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(38,103,255,.13); outline:none; }
.checkbox { align-items:start; display:flex; font-weight:500; gap:10px; line-height:1.45; }
.checkbox input { accent-color:var(--blue); flex:0 0 auto; min-height:auto; margin-top:3px; width:17px; }
.note { background:#f7f9fc; border-left:3px solid var(--blue); color:var(--muted); font-size:13px; line-height:1.5; margin:20px 0 0; padding:11px 13px; }
.upload-grid { border-top:1px solid var(--line); margin-top:22px; padding-top:22px; }
.document-camera-button { display:block; margin-top:10px; min-height:42px; width:100%; }
.document-camera-status { color:#087443; display:block; font-size:13px; font-weight:700; margin-top:7px; min-height:18px; }
small { color:var(--muted); font-weight:400; }
input[type="file"] { padding:9px; }
.camera-box { background:#f7f9fc; border:1px solid var(--line); border-radius:14px; margin-top:22px; padding:20px; }
.camera-box h3 { font-size:16px; margin:0 0 6px; }
.camera-box p { color:var(--muted); font-size:13px; line-height:1.5; margin:0 0 14px; }
#camera-preview,#selfie-canvas { background:#101f38; border-radius:12px; display:block; margin:14px auto; max-height:360px; max-width:100%; width:480px; }
#camera-preview[hidden],#selfie-canvas[hidden] { display:none; }
.camera-actions { display:flex; flex-wrap:wrap; gap:10px; }
.camera-actions button { min-height:42px; }
button.secondary { background:#fff; border:1px solid #b9c7da; color:var(--navy); }
.camera-message { color:#17683a !important; font-weight:650; }
.liveness-instruction { background:#101f38; border-radius:10px; color:#fff; font-size:17px; font-weight:750; margin:14px auto; max-width:480px; padding:14px; text-align:center; }
.consent-card { display:grid; gap:16px; }
.required { color:var(--muted); font-size:12px; margin:0; }
button { background:var(--blue); border:0; border-radius:11px; color:#fff; cursor:pointer; font:inherit; font-weight:750; min-height:50px; padding:12px 20px; }
button:hover { background:#174cce; }
@media (max-width:650px) { .topbar{padding:0 18px}.page{padding-top:38px}.grid{grid-template-columns:1fr}.wide{grid-column:auto}.card{padding:21px} }

.admin-page { margin:0 auto; max-width:1280px; padding:42px 24px 80px; }
.admin-heading { align-items:end; display:flex; justify-content:space-between; margin-bottom:26px; }
.admin-heading h1 { font-size:36px; margin-bottom:8px; }
.admin-heading p:last-child { color:var(--muted); margin:0; }
.development-badge { background:#fff7df; border:1px solid #f0d384; border-radius:999px; color:#664c08; font-size:12px; padding:8px 12px; }
.stats { display:grid; gap:14px; grid-template-columns:repeat(4,1fr); margin-bottom:20px; }
.stats article { background:#fff; border:1px solid var(--line); border-radius:15px; display:grid; gap:8px; padding:20px; }
.stats span { color:var(--muted); font-size:13px; }
.stats strong { font-size:28px; }
.admin-card { background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:0 12px 30px rgba(35,58,91,.06); padding:20px; }
.admin-search { margin-bottom:18px; max-width:440px; }
.table-wrap { overflow-x:auto; }
table { border-collapse:collapse; min-width:980px; width:100%; }
th { color:var(--muted); font-size:12px; letter-spacing:.04em; padding:12px; text-align:left; text-transform:uppercase; }
td { border-top:1px solid var(--line); font-size:14px; padding:16px 12px; vertical-align:middle; }
td small { color:var(--muted); display:block; margin-top:4px; }
.status { border-radius:999px; display:inline-block; font-size:12px; font-weight:700; padding:6px 10px; }
.status.pending { background:#fff3cd; color:#755a00; }
.table-button { background:var(--blue); border-radius:9px; color:#fff; display:inline-block; font-size:13px; font-weight:700; min-height:36px; padding:9px 12px; text-decoration:none; }
.back-link { color:var(--blue); display:inline-block; font-weight:650; margin-bottom:24px; text-decoration:none; }
.detail-grid { display:grid; gap:18px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.wide-detail { grid-column:1/-1; }
.detail-grid h2 { border-bottom:1px solid var(--line); padding-bottom:15px; }
dl { display:grid; gap:14px; margin:0; }
dl div { display:grid; gap:4px; }
dt { color:var(--muted); font-size:12px; font-weight:700; text-transform:uppercase; }
dd { font-size:15px; margin:0; overflow-wrap:anywhere; }
.mono { font-family:Consolas,monospace; }
.status.clear { background:#e9f8ef; color:#17683a; }
.file-previews { display:grid; gap:14px; grid-template-columns:repeat(3,1fr); }
.file-placeholder { align-items:center; background:#f7f9fc; border:1px dashed #b9c7da; border-radius:14px; display:flex; flex-direction:column; gap:7px; justify-content:center; min-height:170px; padding:20px; text-align:center; }
.file-placeholder { color:var(--navy); text-decoration:none; }
.file-placeholder span { font-size:38px; }
.file-placeholder small { color:var(--muted); }
.document-preview { background:#f7f9fc; border:1px solid var(--line); border-radius:14px; display:grid; gap:10px; padding:14px; }
.document-preview>strong { font-size:14px; }
.document-preview>a:last-child { color:var(--blue); font-size:12px; font-weight:650; overflow-wrap:anywhere; text-decoration:none; }
.preview-media { background:#e8edf5; border:0; border-radius:10px; display:block; height:300px; object-fit:contain; width:100%; }
.preview-image-link { display:block; }
.preview-placeholder { align-items:center; background:#e8edf5; border-radius:10px; color:var(--muted); display:flex; height:300px; justify-content:center; }
.liveness-review { background:#101f38; border-radius:14px; display:block; max-height:520px; max-width:100%; width:720px; }
@media (max-width:760px) { .admin-heading{align-items:start;flex-direction:column;gap:14px}.stats{grid-template-columns:repeat(2,1fr)} }
@media (max-width:700px) { .detail-grid{grid-template-columns:1fr}.wide-detail{grid-column:auto}.file-previews{grid-template-columns:1fr} }
.admin-nav { align-items:center; display:flex; gap:10px; }
.logout { color:#a53434; font-size:14px; font-weight:650; padding:9px; text-decoration:none; }
.auth-body { align-items:center; background:linear-gradient(145deg,#eef4ff,#f7f9fc); display:flex; justify-content:center; min-height:100vh; padding:24px; }
.auth-card { background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:0 20px 50px rgba(35,58,91,.12); max-width:460px; padding:34px; width:100%; }
.auth-brand { margin-bottom:28px; }
.auth-card h1 { font-size:30px; margin-bottom:10px; }
.auth-card>p { color:var(--muted); line-height:1.5; }
.auth-card form { display:grid; gap:18px; margin:24px 0; }
.auth-card>small { color:var(--muted); display:block; line-height:1.5; }
.auth-error:empty { display:none; }
.auth-error { background:#fff0f0; border:1px solid #f2c0c0; border-radius:10px; color:#9b2929; font-size:13px; padding:10px; }
.compact-message:empty { display:none; }
.wallet-layout { margin-bottom:18px; }
.wallet-form,.review-form { display:grid; gap:16px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.wallet-form button,.review-form button { align-self:end; }
.wallet-table-card { margin-top:18px; }
.empty-cell { color:var(--muted); padding:30px; text-align:center; }
.network-badge { background:var(--sky); border-radius:999px; color:var(--blue); font-size:12px; font-weight:750; padding:6px 9px; }
.danger-zone { border-color:#efbcbc; }
.danger-zone h2 { color:#9b2929; }
.danger-zone form { display:flex; gap:12px; }
.danger-button { background:#b42323; }
.danger-button:hover { background:#8e1717; }
.review-zone { border-color:#bdd0ee; }
.status.approved { background:#e9f8ef; color:#17683a; }
.status.rejected { background:#fff0f0; color:#9b2929; }
.duplicate-alert { background:#fff0f0; border:1px solid #e8abab; border-left:5px solid #b42323; border-radius:14px; color:#6f1d1d; margin-bottom:20px; padding:18px 20px; }
.duplicate-alert>strong { font-size:17px; }
.duplicate-alert p { font-size:14px; margin:8px 0 12px; }
.duplicate-alert ul { display:grid; gap:10px; list-style:none; margin:0; padding:0; }
.duplicate-alert li { background:#fff; border-radius:10px; display:grid; gap:4px; padding:11px 13px; }
.duplicate-alert a { color:#9b2929; font-weight:750; text-decoration:none; }
.duplicate-alert span { color:#7b4545; font-size:12px; }
@media (max-width:760px) { .wallet-form,.review-form{grid-template-columns:1fr}.danger-zone form{flex-direction:column} }
.blockchain-form { display:grid; gap:18px; }
.config-state { background:var(--sky); border-radius:999px; color:var(--blue); float:right; font-size:11px; padding:4px 8px; }
.chain-check-card { display:grid; gap:16px; margin-bottom:20px; }
.chain-check-card h2 { margin-bottom:5px; }
.chain-check-card p { color:var(--muted); margin:0; }
