:root { color: #edf2ff; background: #0b1020; font-family: Inter, "Microsoft YaHei", system-ui, sans-serif; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: #0b1020; }
.background { position: fixed; inset: 0; z-index: -1; background: radial-gradient(circle at 14% 0%, #243b7b 0, transparent 32rem), radial-gradient(circle at 90% 10%, #164e63 0, transparent 28rem); }
.topbar { height: 68px; border-bottom: 1px solid #24304c; display: flex; align-items: center; justify-content: space-between; padding: 0 max(24px, calc((100vw - 1180px)/2)); background: rgba(11,16,32,.76); backdrop-filter: blur(14px); }
.brand { color: #fff; text-decoration: none; display: flex; gap: 10px; align-items: center; font-weight: 750; letter-spacing: .02em; }
.brand-mark { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; background: linear-gradient(135deg,#34d399,#38bdf8); color: #07111f; }
.account { display: flex; align-items: center; gap: 15px; color: #b8c4df; font-size: .9rem; }.account form { margin: 0; }
.container { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 48px 0 72px; }
.page-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 26px; }.page-heading h1,.login-card h1 { margin: 3px 0 0; font-size: clamp(2rem, 5vw, 3.1rem); }.eyebrow { color: #5eead4; letter-spacing: .15em; font-size: .72rem; font-weight: 700; margin: 0; }.muted,.hint,.empty { color: #a9b6d0; line-height: 1.7; }.hint { font-size: .8rem; margin-top: 26px; }
.status-pill,.badge { border: 1px solid #355277; color: #a9d9ff; padding: 6px 10px; border-radius: 999px; font-size: .76rem; white-space: nowrap; }.badge-on { color: #65e9b0; border-color: #1d7354; }.badge-off { color: #f6b2b2; border-color: #87414a; }
.stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-bottom: 18px; }.stats article,.panel,.login-card { border: 1px solid #293653; background: rgba(18,27,50,.78); box-shadow: 0 18px 50px rgba(0,0,0,.18); border-radius: 16px; }.stats article { padding: 20px; }.stats span { color: #a9b6d0; font-size: .85rem; display: block; }.stats strong { font-size: 2rem; margin-top: 7px; display: block; }
.grid { display: grid; gap: 18px; margin-bottom: 18px; }.two-columns { grid-template-columns: 1fr 1fr; }.panel { padding: 20px; overflow: hidden; }.panel-heading { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; margin-bottom: 12px; }.panel-heading h2 { margin: 0; font-size: 1rem; }.panel-heading span { color: #91a2c3; font-size: .75rem; }
.module-row { display: flex; justify-content: space-between; gap: 18px; align-items: center; padding: 15px 0; border-top: 1px solid #273450; }.module-row:first-of-type { border-top: 0; }.module-row strong { font-size: .95rem; }.module-row p { color: #9babc9; font-size: .78rem; margin: 5px 0 0; line-height: 1.45; }.module-action { display: flex; gap: 8px; align-items: center; }.module-row form { margin: 0; }
.button { cursor: pointer; border: 1px solid #3b5681; border-radius: 8px; background: #1a2844; color: #eaf2ff; padding: 8px 12px; font: inherit; text-decoration: none; display: inline-flex; justify-content: center; }.button:hover { background: #263b63; }.button-primary { background: linear-gradient(135deg,#2563eb,#0ea5e9); border-color: #3b82f6; }.button-primary:hover { background: linear-gradient(135deg,#1d4ed8,#0284c7); }.button-large { padding: 13px 20px; font-weight: 650; }.button-quiet { font-size: .78rem; padding: 6px 10px; }
.login-card { width: min(510px, 100%); padding: 42px; margin: 9vh auto 0; }.login-card .muted { margin: 17px 0 25px; }.flash { padding: 12px 15px; border-radius: 10px; margin: 0 0 16px; border: 1px solid #5c4a21; background:#392e15; color:#f9d878; }.flash-success { border-color:#1d7256; background:#13392d; color:#8cf1c0; }.flash-error { border-color:#844551; background:#401e28; color:#ffb8c2; }
.table-wrap { overflow-x: auto; }table { width: 100%; border-collapse: collapse; font-size: .82rem; }th,td { text-align: left; padding: 12px 10px; border-top: 1px solid #293653; vertical-align: top; }th { color:#9aaccc; font-weight:600; }td { color:#e0e8fa; max-width: 300px; }td:nth-child(5) { white-space: pre-wrap; }code { color:#74d3ff; }
.detail-list dl { margin: 0; }.detail-list dl > div { display:grid; grid-template-columns: 100px 1fr; gap:12px; padding:10px 0; border-top:1px solid #293653; }.detail-list dl > div:first-child { border-top:0; }.detail-list dt { color:#9aaccc; }.detail-list dd { margin:0; color:#e0e8fa; overflow-wrap:anywhere; }.detail-list a, td a { color:#74d3ff; }.commit-message { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; line-height:1.65; color:#e0e8fa; }.tag-list { display:flex; flex-wrap:wrap; gap:8px; min-height:27px; }.tag { border:1px solid #365a7a; border-radius:999px; color:#9bd9ff; padding:4px 9px; font-size:.78rem; }.tag-form { display:flex; gap:9px; margin-top:18px; }.tag-form input { min-width:0; flex:1; border:1px solid #3b5681; border-radius:8px; padding:8px 10px; background:#0d172b; color:#edf2ff; font:inherit; }.path-list { list-style:none; margin:0; padding:0; max-height:460px; overflow:auto; }.path-list li { padding:9px 0; border-top:1px solid #293653; overflow-wrap:anywhere; }
@media (max-width: 760px) { .topbar { padding: 0 20px; }.container { width: min(100% - 28px,1180px); padding-top:28px; }.two-columns,.stats { grid-template-columns: 1fr; }.page-heading { align-items: start; flex-direction: column; }.module-row { align-items: start; flex-direction: column; }.login-card { padding: 28px; margin-top: 5vh; } }
