:root { color-scheme: light; font-family: Inter, "Microsoft YaHei", sans-serif; color: #182234; background: #f3f6fa; font-synthesis: none; }
* { box-sizing: border-box; }
body { margin: 0; background: radial-gradient(circle at 85% -10%, #dce8ff 0, transparent 30%), #f3f6fa; min-height: 100vh; }
a { color: #285cc5; text-decoration: none; }
.nav { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 0 max(24px, calc((100% - 1080px) / 2)); background: rgba(255,255,255,.92); border-bottom: 1px solid #e3e9f1; position: sticky; top: 0; z-index: 5; backdrop-filter: blur(12px); }
.brand { color: #132038; font-weight: 850; font-size: 18px; letter-spacing: -.02em; white-space: nowrap; }
.brand span { color: #3568dc; margin-left: 6px; font-size: 13px; }
.nav-links { display: flex; gap: 5px; overflow-x: auto; }
.nav-links a { color: #536075; padding: 9px 12px; border-radius: 9px; white-space: nowrap; font-size: 14px; }
.nav-links a:hover { background: #edf3ff; color: #2456be; }
.shell { width: min(1080px, calc(100% - 32px)); margin: 38px auto 70px; }
.card { background: rgba(255,255,255,.96); border: 1px solid #e3e9f1; border-radius: 18px; padding: 24px; margin: 18px 0; box-shadow: 0 10px 30px rgba(31,45,61,.055); }
.auth-card { max-width: 430px; margin: 12vh auto; }
.eyebrow { color: #3267e3; font-size: 11px; font-weight: 850; letter-spacing: .15em; margin: 0 0 7px; text-transform: uppercase; }
h1, h2 { margin: 0 0 12px; letter-spacing: -.025em; }
h1 { font-size: clamp(28px, 5vw, 40px); }
h2 { font-size: 21px; }
.muted, .empty-copy { color: #718096; }
label { display: grid; gap: 7px; margin: 16px 0; font-weight: 650; font-size: 14px; color: #4b586d; }
input, select { width: 100%; padding: 12px 14px; border: 1px solid #cbd5e1; border-radius: 10px; background: #fff; font: inherit; color: #172033; }
button, input[type=submit] { width: auto; border: 0; border-radius: 10px; padding: 11px 18px; font: inherit; font-weight: 750; cursor: pointer; }
.primary { color: #fff; background: #3267e3; }
.secondary { color: #334155; background: #e8edf4; }
.page-head, .section-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.page-head { margin-bottom: 24px; }
.sync-dot { padding: 9px 13px; color: #296347; background: #e7f7ef; border-radius: 999px; font-size: 13px; white-space: nowrap; }
.metric-grid { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 14px; }
.metric { min-height: 150px; display: flex; flex-direction: column; justify-content: space-between; background: #fff; border: 1px solid #e3e9f1; border-radius: 17px; padding: 20px; box-shadow: 0 7px 24px rgba(31,45,61,.045); }
.metric > span { color: #6f7d91; font-size: 14px; }
.metric strong { font-size: 35px; letter-spacing: -.04em; }
.metric small, .row small { display: block; color: #7b8798; }
.primary-metric { color: #fff; border: 0; background: linear-gradient(135deg, #315fd4, #5a78e8); }
.primary-metric span, .primary-metric small { color: #e5ebff; }
.progress { height: 7px; background: rgba(255,255,255,.24); border-radius: 99px; overflow: hidden; }
.progress i { display: block; height: 100%; background: #fff; border-radius: inherit; }
.chart { height: 230px; display: flex; align-items: end; gap: 6px; padding-top: 25px; border-bottom: 1px solid #e5eaf1; }
.bar-wrap { height: 100%; flex: 1; display: flex; align-items: center; justify-content: end; flex-direction: column; min-width: 5px; }
.bar { width: 100%; min-height: 2px; background: #cbd8ef; border-radius: 5px 5px 0 0; }
.bar.today { background: #3267e3; }
.bar-wrap small { color: #8a96a8; font-size: 9px; height: 20px; transform: rotate(-45deg); margin-top: 8px; white-space: nowrap; }
.rows { display: grid; }
.row { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 15px 0; border-top: 1px solid #edf1f5; }
.row:first-child { border-top: 0; }
.row > div:first-child { min-width: 0; }
.row strong { display: block; overflow-wrap: anywhere; }
.row-progress { width: 180px; flex: 0 0 auto; display: flex; align-items: center; gap: 10px; }
.row-progress span { width: 40px; color: #536075; text-align: right; font-size: 13px; }
.row-progress i { display: block; flex: 1; height: 7px; background: #e8edf4; border-radius: 99px; overflow: hidden; }
.row-progress b { display: block; height: 100%; background: #4a73d8; }
.filters { display: grid; grid-template-columns: 1fr 1fr 1fr auto; align-items: end; gap: 14px; }
.filters label { margin: 0; }
.table-scroll { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th { color: #6d798c; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; text-align: left; }
th, td { padding: 13px 12px; border-bottom: 1px solid #edf1f5; white-space: nowrap; }
.timeline { display: grid; }
.timeline > div { display: grid; grid-template-columns: 180px 1fr 90px; gap: 15px; padding: 11px 0; border-bottom: 1px solid #edf1f5; }
.timeline time, .timeline span { color: #748094; font-size: 13px; }
.pager { display: flex; justify-content: center; gap: 28px; padding-top: 22px; }
.pairing-code { margin: 18px 0 6px; color: #1d4ed8; font-size: clamp(36px,10vw,64px); font-weight: 850; letter-spacing: .15em; text-align: center; }
.success { color: #147a4b; text-align: center; }
.notice { border-radius: 10px; padding: 12px 16px; background: #fff4e5; color: #8a4b08; }
.device-list { list-style: none; padding: 0; margin: 0; }
.device-list li { display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid #edf1f5; padding: 14px 0; }
.device-list li:first-child { border-top: 0; }
.device-list small { display: block; color: #748094; }
.device-list span { color: #697386; }
.device-list li > div:last-child { display: flex; align-items: center; gap: 10px; }
.device-list form { display: inline; }
.device-list button { padding: 7px 10px; font-size: 12px; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(180px, 1fr)); gap: 14px; }
.star-balance { color: #7a5700; background: #fff4c2; padding: 11px 16px; border-radius: 999px; font-weight: 800; }
.reward-layout { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(420px, 1.5fr); gap: 18px; align-items: start; }
.reward-layout .card { margin: 0; }
.reward-form textarea { width: 100%; resize: vertical; padding: 12px 14px; border: 1px solid #cbd5e1; border-radius: 10px; font: inherit; }
.reward-form em { color: #b42318; font-size: 12px; font-style: normal; }
.reward-list article { display: grid; grid-template-columns: 72px 1fr auto; gap: 15px; align-items: start; padding: 15px 0; border-bottom: 1px solid #edf1f5; }
.reward-list article:last-child { border-bottom: 0; }
.reward-list p { color: #667287; margin: 5px 0; }
.reward-list small { color: #8490a2; }
.reward-value { color: #b07a00; font-size: 19px; font-weight: 850; }
.reward-value.negative { color: #b42318; }
.status { padding: 5px 9px; border-radius: 99px; font-size: 12px; white-space: nowrap; }
.status.claimed { color: #246647; background: #e3f6ec; }
.status.pending { color: #8a5a00; background: #fff2cb; }
.device-code { color: #697386; margin: 4px 0 0; overflow-wrap: anywhere; }
.device-code code { color: #334155; font-size: 12px; }
.backup-count { color: #285cc5; background: #edf3ff; border-radius: 999px; padding: 8px 12px; font-weight: 750; white-space: nowrap; }
.backup-actions { display: flex; align-items: center; gap: 8px; }
.backup-actions form { margin: 0; }
.small-button { display: inline-block; border-radius: 8px; padding: 7px 11px; font-size: 12px; font-weight: 750; }
.danger { color: #b42318; background: #feeceb; }
@media (max-width: 860px) { .metric-grid { grid-template-columns: 1fr 1fr; } .primary-metric { grid-column: 1 / -1; } .filters { grid-template-columns: 1fr 1fr; } .nav { align-items: flex-start; flex-direction: column; padding: 14px 18px 10px; gap: 8px; } .nav-links { width: 100%; } }
@media (max-width: 860px) { .reward-layout { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .nav-links { display: grid; grid-template-columns: repeat(6, max-content); justify-content: space-between; } .nav-links a { padding: 7px 2px; font-size: 12px; } .shell { margin: 22px auto 50px; } .card { padding: 18px; border-radius: 14px; } .page-head, .section-head { align-items: flex-start; flex-direction: column; } .metric-grid { grid-template-columns: 1fr 1fr; } .metric { min-height: 130px; padding: 16px; } .metric strong { font-size: 29px; } .filters, .settings-grid { grid-template-columns: 1fr; } .row { align-items: flex-start; flex-direction: column; gap: 10px; } .row-progress { width: 100%; } .timeline > div { grid-template-columns: 1fr; gap: 3px; } .chart { gap: 3px; height: 190px; } .device-list li { flex-direction: column; } .device-list li > div:last-child { width: 100%; justify-content: space-between; } .reward-list article { grid-template-columns: 65px 1fr; } .reward-list .status { grid-column: 2; justify-self: start; } }
