:root { color-scheme: light; --blue:#1769e0; --blue-dark:#0e4fae; --ink:#172033; --muted:#667085; --line:#e5e9f0; --bg:#f5f7fb; --green:#137a48; --green-bg:#eaf8f0; --yellow:#8a5900; --yellow-bg:#fff7dc; --red:#b42318; --red-bg:#fff0ee; --radius:14px; }
* { box-sizing:border-box; }
body { margin:0; font:14px/1.55 system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif; color:var(--ink); background:var(--bg); }
button,input { font:inherit; }
a { color:var(--blue); text-decoration:none; }
.site-header { height:64px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:0 max(24px,calc((100vw - 1440px)/2)); background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:10; }
.brand { display:flex; align-items:center; gap:10px; font-size:20px; font-weight:750; color:var(--ink); }
.brand-mark { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; color:#fff; background:linear-gradient(145deg,#287cf1,#0e55ba); }
.page { width:min(1440px,calc(100% - 40px)); margin:28px auto 48px; }
.card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 8px 28px rgba(23,32,51,.045); }
.card-body { padding:22px; }
.auth-shell { min-height:calc(100vh - 64px); display:grid; place-items:center; padding:32px 20px; }
.auth-card { width:min(430px,100%); }
.auth-card h1 { margin:0 0 6px; font-size:26px; }
.muted { color:var(--muted); }
.tabs { display:grid; grid-template-columns:1fr 1fr; gap:6px; padding:5px; margin:22px 0; background:#f2f4f7; border-radius:11px; }
.tab { border:0; padding:9px; border-radius:8px; color:var(--muted); background:transparent; cursor:pointer; }
.tab.active { color:var(--blue-dark); background:#fff; font-weight:700; box-shadow:0 1px 4px rgba(0,0,0,.08); }
.field { display:grid; gap:7px; margin:15px 0; }
.field label { font-weight:650; }
.field input { width:100%; height:44px; padding:0 12px; border:1px solid #cfd6e2; border-radius:9px; outline:none; background:#fff; }
.field input:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(23,105,224,.12); }
.button { min-height:42px; border:0; border-radius:9px; padding:0 17px; background:var(--blue); color:#fff; font-weight:700; cursor:pointer; }
.button:hover { background:var(--blue-dark); }
.button:disabled { opacity:.58; cursor:not-allowed; }
.button.secondary { color:var(--ink); background:#fff; border:1px solid #cfd6e2; }
.button.secondary:hover { background:#f7f9fc; }
.auth-card .button.primary { width:100%; margin-top:10px; }
.notice { padding:11px 13px; margin:14px 0 0; border-radius:9px; background:#eef4ff; color:#174ea6; }
.notice.error { background:var(--red-bg); color:var(--red); }
.notice.success { background:var(--green-bg); color:var(--green); }
.system-alerts { display:grid; gap:8px; margin-top:16px; }
.system-alert { padding:13px 15px; border:1px solid #fecdca; border-radius:10px; color:var(--red); background:var(--red-bg); font-weight:650; }
.system-alert.warning { color:var(--yellow); border-color:#fedf89; background:var(--yellow-bg); }
.page-title { margin:0; font-size:24px; }
.page-intro { margin:3px 0 0; color:var(--muted); }
.submit-grid { display:grid; grid-template-columns:minmax(220px,.45fr) minmax(300px,1fr) auto; gap:18px; align-items:end; }
.file-box { min-height:44px; display:flex; align-items:center; padding:8px 12px; border:1px dashed #aeb9c9; border-radius:9px; background:#fafbfc; }
.file-box input { width:100%; }
.section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:26px 0 12px; }
.section-head h2 { margin:0; font-size:19px; }
.table-wrap { width:100%; overflow-x:auto; border-radius:var(--radius); }
table { width:100%; min-width:900px; border-collapse:collapse; background:#fff; }
th,td { padding:12px 14px; text-align:left; border-bottom:1px solid var(--line); vertical-align:top; }
th { color:#475467; font-size:13px; background:#f8fafc; white-space:nowrap; }
tr:last-child td { border-bottom:0; }
.status { display:inline-flex; align-items:center; border-radius:999px; padding:3px 9px; font-size:12px; font-weight:700; background:#eef2f6; color:#475467; white-space:nowrap; }
.status.done { background:var(--green-bg); color:var(--green); }
.status.running { background:#eaf2ff; color:#175cd3; }
.status.failed { background:var(--red-bg); color:var(--red); }
.failure { max-width:320px; color:var(--red); word-break:break-word; }
.pager { display:flex; justify-content:flex-end; align-items:center; gap:10px; margin-top:12px; }
.empty { padding:40px; text-align:center; color:var(--muted); }
.report-shell { padding:14px; }
.report-frame { width:100%; min-height:calc(100vh - 150px); border:0; background:#fff; border-radius:10px; }
.loading { padding:70px 20px; text-align:center; color:var(--muted); }
.footer { padding:26px 20px; text-align:center; color:#98a2b3; }
.advice-grow { color:var(--green)!important; background:var(--green-bg)!important; }
.advice-caution { color:var(--yellow)!important; background:var(--yellow-bg)!important; }
.advice-stop { color:var(--red)!important; background:var(--red-bg)!important; }
@media (max-width:760px) { .site-header{padding:0 14px}.brand{font-size:17px}.page{width:min(100% - 20px,1440px);margin-top:16px}.card-body{padding:16px}.submit-grid{grid-template-columns:1fr}.submit-grid .button{width:100%}.section-head{align-items:flex-start}.hide-mobile{display:none}.auth-shell{padding:18px 10px} }
