:root{--bg:#f5f7fb;--panel:#fff;--text:#172033;--muted:#6b7280;--line:#e5e7eb;--brand:#2563eb;--brand2:#1d4ed8;--bad:#b91c1c;--ok:#166534}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px}.topbar{height:64px;background:#111827;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2));gap:20px}.brand{display:flex;align-items:baseline;gap:12px}.brand a{color:#fff;text-decoration:none;font-size:19px;font-weight:750}.brand span{color:#9ca3af;font-size:12px}.topbar nav{display:flex;align-items:center;gap:18px}.topbar nav a,.link-button{color:#d1d5db;text-decoration:none;background:none;border:0;padding:0;cursor:pointer;font:inherit}.topbar nav a:hover,.link-button:hover{color:#fff}.container{max-width:1180px;margin:28px auto;padding:0 20px 50px}footer{text-align:center;color:#9ca3af;padding:24px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}h1{margin:0 0 7px;font-size:26px}h2{font-size:17px;margin:0 0 14px}p{line-height:1.55}.muted{color:var(--muted)}.tiny{font-size:11px;color:var(--muted);margin-top:5px}.url{max-width:360px;word-break:break-all}.card,.table-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 2px rgba(0,0,0,.03)}.card{padding:20px}.table-card{overflow:auto}.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}.actions{display:flex;gap:10px;align-items:center}.actions form,.actions-cell form,.inline{display:inline;margin:0}.button,button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 13px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#1f2937;text-decoration:none;cursor:pointer;font:inherit;font-weight:600}.button:hover,button:hover{background:#f9fafb}.primary{background:var(--brand);border-color:var(--brand);color:#fff}.primary:hover{background:var(--brand2)}.danger{color:#b91c1c}.small{min-height:30px;padding:0 9px;font-size:12px}.notice{padding:12px 15px;border-radius:9px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;margin-bottom:18px}.error{padding:10px;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:8px}.error-text{color:#b91c1c;max-width:230px;word-break:break-word}.copy-row,.row-form{display:flex;align-items:center;gap:10px}.copy-row code{flex:1;overflow:auto;background:#f8fafc;padding:9px;border-radius:7px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;color:#6b7280;background:#f9fafb;white-space:nowrap}tbody tr:last-child td{border-bottom:0}.actions-cell{white-space:nowrap}.pill{display:inline-block;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700}.pill.ok{background:#dcfce7;color:#166534}.pill.bad{background:#fee2e2;color:#991b1b}.pill.wait{background:#fef3c7;color:#92400e}.pill.off{background:#e5e7eb;color:#4b5563}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid .wide{grid-column:1/-1}label{display:flex;flex-direction:column;gap:7px;font-weight:650}input,select{width:100%;border:1px solid #d1d5db;border-radius:8px;padding:10px 11px;background:#fff;color:#111827;font:inherit}input:focus,select:focus{outline:2px solid #bfdbfe;border-color:#60a5fa}.check{flex-direction:row;align-items:center;font-weight:500}.check input{width:auto}.form-actions{display:flex;justify-content:flex-end;gap:10px}.stack{display:flex;flex-direction:column}.gap-lg{gap:18px}.login-card{max-width:420px;margin:70px auto}.login-card .stack{gap:14px}.empty{text-align:center;color:#9ca3af;padding:40px}.row-form input[type=file]{padding:7px}.table-card a{color:#2563eb;text-decoration:none}.table-card a:hover{text-decoration:underline}@media(max-width:800px){.topbar{height:auto;min-height:64px;padding:15px 18px;align-items:flex-start}.topbar,.page-head{flex-direction:column}.topbar nav{flex-wrap:wrap}.grid.two,.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.container{margin-top:20px}.actions{flex-wrap:wrap}}
