:root{--bg: #f5f6f8;--card: #ffffff;--border: #e3e6ea;--text: #1f2329;--muted: #7a828c;--primary: #2563eb;--primary-dark: #1d4ed8;--ac: #16a34a;--wa: #dc2626;--re: #d97706;--tle: #9333ea;--ce: #64748b;--mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}a{color:var(--primary);text-decoration:none}h1{font-size:1.5rem;margin-bottom:12px}h2{font-size:1.2rem;margin:16px 0 8px}h3{font-size:1.05rem;margin:12px 0 6px}button{padding:8px 16px;border:1px solid var(--border);border-radius:6px;background:var(--card);cursor:pointer;font-size:14px;transition:background .15s}button:hover{background:#f0f2f5}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover{background:var(--primary-dark)}button:disabled{opacity:.6;cursor:not-allowed}button.danger{color:var(--wa);border-color:var(--wa)}input,textarea,select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;margin-bottom:12px;font-family:inherit}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary)}.dim{color:var(--muted)}.mono{font-family:var(--mono)}.page{animation:fade .2s ease}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1}}.tag{display:inline-block;font-size:12px;padding:2px 8px;border-radius:999px;background:#eef2ff;color:var(--primary);margin-left:8px}.admin-shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:#0f172a;color:#cbd5e1;display:flex;flex-direction:column}.sidebar .brand{padding:20px;font-weight:700;font-size:1.05rem;color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar nav{flex:1;padding:12px 0;display:flex;flex-direction:column;gap:2px}.sidebar nav a{display:block;padding:10px 20px;color:#cbd5e1}.sidebar nav a:hover{background:rgba(255,255,255,.06);color:#fff}.sidebar nav a.router-link-active{background:var(--primary);color:#fff;font-weight:600}.sidebar .foot{padding:16px 20px;border-top:1px solid rgba(255,255,255,.08);font-size:13px}.sidebar .foot .user{color:#fff;font-weight:600}.sidebar .foot .logout{color:#94a3b8;background:none;border:none;padding:4px 0;cursor:pointer}.sidebar .foot .logout:hover{color:#fff;background:none}.main{flex:1;padding:24px;overflow-x:auto}.table-card{background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.toolbar .spacer{flex:1}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th,.data-table td{border:1px solid var(--border);padding:8px 12px;text-align:left;vertical-align:top}.data-table th{background:#fafbfc;white-space:nowrap}.data-table td.mono{font-size:12px}.verdict.AC{color:var(--ac);font-weight:700}.verdict.WA{color:var(--wa);font-weight:700}.verdict.RE{color:var(--re);font-weight:700}.verdict.TLE{color:var(--tle);font-weight:700}.verdict.CE{color:var(--ce);font-weight:700}.verdict.OTHER{color:var(--muted);font-weight:700}.auth-page{display:flex;justify-content:center;align-items:center;min-height:100vh}.auth-card{width:360px;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:32px;text-align:center}.auth-card h1{margin-bottom:8px}.auth-card .sub{color:var(--muted);margin-bottom:20px}.auth-card button{width:100%;margin-top:4px}.error{color:var(--wa);font-size:13px;margin-bottom:8px;text-align:left}.bank-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}@media (max-width: 1100px){.bank-layout{grid-template-columns:1fr}}.bank-tree{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:12px}.node{margin-left:4px}.node details{margin-left:16px}.row{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-radius:6px;cursor:pointer}.row:hover{background:#f0f2f5}.row.ex.active{background:#eef2ff}.name{display:flex;align-items:center;gap:8px;font-weight:500}.kind{font-size:11px;color:var(--muted);background:#eef1f5;padding:1px 6px;border-radius:4px;flex-shrink:0}.ops{display:flex;gap:4px;flex-shrink:0}.mini{padding:2px 8px;font-size:12px}.mini.danger{color:var(--wa)}.bank-detail{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:20px}.bank-detail h2,.bank-detail h3{margin-top:0}.f-label{display:block;font-size:13px;color:var(--muted);margin:10px 0 4px}.f-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.center{padding:40px 0;text-align:center}hr{border:none;border-top:1px solid var(--border);margin:20px 0}.case-card{border:1px solid var(--border);border-radius:8px;padding:10px;margin-top:10px}.case-head{display:flex;align-items:center;gap:12px;margin-bottom:6px}.chk{font-size:13px;display:inline-flex;align-items:center;gap:4px}.chk input{width:auto;margin:0}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:100}.modal{width:520px;max-width:94vw;max-height:88vh;overflow:auto;background:var(--card);border-radius:10px;padding:20px}.modal-actions{display:flex;gap:12px;margin-top:16px}
