*{box-sizing:border-box}body{margin:0;color:#303133;background:#f4f5f7;font:14px -apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}button,input,select{font:inherit}button{border:1px solid #dcdfe6;border-radius:4px;padding:8px 14px;background:#fff;color:#505660;cursor:pointer}button:hover{color:#1677ff;border-color:#91caff}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible{outline:2px solid #1677ff;outline-offset:2px}.primary{background:#1677ff;color:#fff;border-color:#1677ff}.primary:hover{background:#4096ff;color:#fff}input,select{padding:9px 11px;border:1px solid #dcdfe6;border-radius:4px;color:#303133;background:#fff;min-width:0}input:focus,select:focus{outline:2px solid #cfe2ff;border-color:#1677ff}label{display:flex;gap:10px;align-items:center}h1{font-size:21px;margin:0;font-weight:600}h2{font-size:16px;margin:0}h3{font-size:15px}header{position:fixed;inset:0 0 auto;height:60px;background:#fff;border-bottom:1px solid #e7e9ed;padding:0 24px;display:flex;align-items:center;justify-content:space-between;z-index:3}.brand{font-size:21px;font-weight:650;letter-spacing:-.5px}.brand small{font-size:14px;color:#777;font-weight:400;margin-left:18px;letter-spacing:0}.top-actions{display:flex;align-items:center;gap:12px;font-size:13px}aside{position:fixed;top:60px;bottom:0;left:0;width:192px;background:#fff;border-right:1px solid #e7e9ed;padding:20px 12px}.nav-title{font-size:12px;color:#909399;padding:12px;margin-top:12px}aside button{display:block;border:0;width:100%;text-align:left;padding:13px 18px;margin:3px 0}aside button.active{background:#eaf3ff;color:#1677ff}.side-note{position:absolute;bottom:24px;left:24px;color:#909399;font-size:12px}main{margin:60px 0 0 192px;padding:24px}.crumb{font-size:12px;color:#909399;margin-bottom:20px}.page-title,.toolbar{display:flex;justify-content:space-between;align-items:center}.page-title{margin-bottom:20px}.box{background:#fff;border:1px solid #e7e9ed;border-radius:4px;margin-bottom:18px}.toolbar{padding:18px 20px;border-bottom:1px solid #ebeef5}.filters{display:flex;gap:14px;flex-wrap:wrap;align-items:center;padding:20px}.filters input{width:185px}.filters input[type=date]{width:155px}.muted,.footer{color:#909399;font-size:12px}.footer{line-height:1.8}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:13px;font-weight:500;background:#fafafa;color:#606266}th,td{padding:14px 18px;border-bottom:1px solid #ebeef5}td{font-size:13px}tbody tr:hover{background:#f8fbff}.link{color:#1677ff;padding:0;border:0;background:transparent}.row-actions{display:flex;gap:14px;align-items:center;min-height:58px}.tag{display:inline-block;font-size:12px;padding:3px 7px;border:1px solid #c3e3cd;color:#32854b;background:#f1faf4;border-radius:3px}.tag.gray{color:#888;background:#f5f5f5;border-color:#ddd}.pagination{padding:18px 20px;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#909399}.pagination>div{display:flex;align-items:center;gap:12px}.empty{padding:50px 20px;text-align:center;color:#909399}.alert{padding:12px 16px;border:1px solid #ddd;border-radius:4px;line-height:1.7}.error{background:#fff5f4;color:#ae3934;border-color:#f2d3cf}.success{background:#f0faf3;color:#35824b;border-color:#cae8d1}.note{background:#fafafa;color:#737a84;font-size:13px;line-height:1.8;padding:12px 16px;margin:16px 20px;border:1px solid #ebeef5}.space{margin:20px}.logs{white-space:normal}.logs td{vertical-align:top}.logs pre{margin:0;white-space:pre-wrap;word-break:break-word;font:12px/1.7 ui-monospace,monospace;max-width:780px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0005;z-index:10;display:flex;justify-content:flex-end}.overlay.center{align-items:center;justify-content:center;padding:20px}.dialog{background:#fff;width:460px;max-width:100%;padding:26px;border-radius:6px;box-shadow:0 12px 50px #0002;max-height:92vh;overflow:auto}.dialog h2{margin-bottom:22px}.dialog label,.login-box label{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin:18px 0}.dialog .note{margin:16px 0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.drawer{width:760px;max-width:95vw;background:#fff;overflow:auto;box-shadow:-4px 0 30px #0002}.drawer .primary{margin-top:22px}dl{display:grid;grid-template-columns:130px 1fr;border:1px solid #eee}dt,dd{margin:0;padding:12px;border-bottom:1px solid #eee}dt{background:#fafafa;color:#888}dd{overflow-wrap:anywhere}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-box{width:410px;background:#fff;border:1px solid #e5e7eb;padding:38px;border-radius:6px;box-shadow:0 5px 25px #00004}.login-box h1{margin-top:12px;font-size:18px}.full{width:100%;margin-top:8px}@media(max-width:850px){aside{width:145px}main{margin-left:145px;padding:16px}.brand small{display:none}.top-actions{gap:6px}.top-actions>span{max-width:140px}.filters{align-items:flex-start}.filters label{flex-direction:column;align-items:flex-start}header{padding:0 16px}}@media(max-width:550px){aside{position:static;width:100%;margin-top:60px;display:flex;flex-wrap:wrap;padding:8px}.nav-title,.side-note{display:none}aside button{width:auto;margin:0;padding:10px}.top-actions>span{display:none}main{margin:0;padding:12px}.filters input{width:160px}th,td,.pagination{padding:12px}}.list-page,.list-box{display:flex;flex-direction:column}.list-table{max-height:calc(100vh - 390px);min-height:160px}.list-table th,.spirit-table th{position:sticky;top:0;z-index:1}.pagination{gap:12px;flex-wrap:wrap;background:#fff}.pagination .page-controls{gap:6px;flex-wrap:wrap}.pagination button{padding:7px 10px}.pagination select{padding:7px}.pagination .selected-page{color:#1677ff;background:#eaf3ff;border-color:#91caff}.page-jump{display:flex;align-items:center;gap:6px}.page-jump label{gap:6px}.page-jump input{width:65px;padding:7px}.detail-page .page-title h1{margin-top:14px}.detail-tabs{display:flex;gap:24px;padding:0 20px;border-bottom:1px solid #ebeef5}.detail-tabs button{border:0;border-radius:0;padding:16px 0;border-bottom:2px solid transparent}.detail-tabs button.active{color:#1677ff;border-bottom-color:#1677ff}.spirit-table{max-height:calc(100vh - 360px)}.detail-page dl{max-width:900px}.detail-page .logs{min-width:600px}@media(max-width:850px){.list-table{max-height:55vh}.pagination{align-items:flex-start}.pagination .page-controls{gap:5px}}
