* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Segoe UI', 'Microsoft YaHei', sans-serif; background: #0f1420; color: #d7dde8; line-height: 1.55; }
header { padding: 18px 24px; background: #161d2e; border-bottom: 1px solid #2a3450; }
header h1 { font-size: 20px; color: #8ab4ff; }
header .sub { font-size: 12px; color: #7c87a1; margin-top: 4px; }
#release-badge { font-size: 12px; background: #2e7d32; color: #fff; padding: 2px 8px; border-radius: 10px; vertical-align: middle; }
#data-source-badge { color: #ffb74d; font-weight: 700; }
.header-actions { display: flex; gap: 10px; align-items: center; margin-top: 8px; }
.auth-badge { font-size: 12px; color: #81c784; }
.auth-page { display: flex; align-items: center; justify-content: center; min-height: 100vh; }
.auth-card { width: 340px; background: #171e30; border: 1px solid #263049; border-radius: 10px; padding: 28px; text-align: center; }
.auth-card h1 { color: #8ab4ff; font-size: 28px; }
.auth-sub { color: #7c87a1; font-size: 13px; margin: 4px 0 18px; }
.auth-card label { display: block; text-align: left; font-size: 12px; color: #90a4c9; margin: 10px 0 4px; }
.auth-card button { width: 100%; margin-top: 14px; }
.auth-error { color: #ef5350; font-size: 13px; margin-top: 10px; min-height: 18px; }
.nav-link { color: #8ab4ff; font-size: 13px; text-decoration: none; padding: 6px 10px; border: 1px solid #2a3450; border-radius: 5px; }
.nav-link:hover { background: #20293d; }
.single-col { grid-template-columns: 1fr; }
main { max-width: 1200px; margin: 0 auto; padding: 18px 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
section { background: #171e30; border: 1px solid #263049; border-radius: 8px; padding: 14px; }
section h2 { font-size: 14px; color: #ffd54f; margin-bottom: 10px; }
section h3 { font-size: 12px; color: #90a4c9; margin: 8px 0; }
textarea, input, select { width: 100%; background: #0f1420; color: #d7dde8; border: 1px solid #2a3450; border-radius: 5px; padding: 7px 9px; font-size: 13px; margin-bottom: 8px; }
textarea { font-family: Consolas, monospace; }
.row { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; }
.row label { flex: 1; min-width: 120px; font-size: 12px; color: #90a4c9; }
button { background: #2a63d8; color: #fff; border: 0; border-radius: 5px; padding: 8px 14px; font-size: 13px; cursor: pointer; margin-bottom: 8px; }
button:hover { background: #3573ec; }
pre { background: #0b101b; border: 1px solid #20293d; border-radius: 5px; padding: 10px; font-size: 11.5px; overflow: auto; max-height: 320px; white-space: pre-wrap; word-break: break-all; color: #b8c4dd; }
.hidden { display: none; }
@media (max-width: 900px) { main { grid-template-columns: 1fr; } }
