:root{font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:#18191d;background:#f5f6f8;font-synthesis:none}*{box-sizing:border-box}body{margin:0}.shell{max-width:1380px;margin:auto;padding:28px}.login-card{width:min(460px,calc(100vw - 32px));margin:8vh auto;background:#fff;border:1px solid #e5e7eb;border-radius:28px;padding:34px;box-shadow:0 24px 70px #11225514}.brand{display:flex;align-items:center;gap:12px}.brand>span{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#002fa7;color:#fff;font-size:24px;font-weight:900;font-style:italic}.brand div{display:grid}.brand strong{font-size:18px}.brand small{color:#7a7f88;margin-top:2px}h1{font-size:30px;margin:42px 0 8px}h2{font-size:18px;margin:0 0 18px}p{color:#737780;line-height:1.7}form{display:grid;gap:15px;margin-top:26px}label{display:grid;gap:7px;font-size:13px;font-weight:650;color:#555b66}input,select,textarea{width:100%;border:1px solid #dfe2e7;border-radius:12px;background:#fff;padding:12px 13px;font:inherit;outline:none}textarea{min-height:80px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#002fa7;box-shadow:0 0 0 3px #002fa714}button{border:0;border-radius:12px;background:#002fa7;color:#fff;padding:12px 17px;font-weight:750;cursor:pointer}button:hover{filter:brightness(1.08)}button.secondary{background:#eef0f3;color:#2b2e34;margin-left:12px}button.danger{background:#fff0f0;color:#bb2424;border:1px solid #ffd4d4}button.warn{background:#fff7e8;color:#925a00;border:1px solid #ffe1a8}output{color:#c82828;white-space:pre-wrap;word-break:break-all}header{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid #e6e8ec;border-radius:20px;padding:16px 20px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0}.metrics article,.card{background:#fff;border:1px solid #e6e8ec;border-radius:20px;padding:20px}.metrics article{display:grid;gap:8px}.metrics span{color:#777d86}.metrics b{font-size:28px}nav{display:flex;gap:7px;padding:5px;background:#e9ebef;border-radius:14px;overflow:auto}nav button{background:transparent;color:#666b74;white-space:nowrap}nav button.active{background:#fff;color:#101216;box-shadow:0 2px 10px #0000000d}.panel{margin-top:18px}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}.card form{margin-top:0}.table{overflow:auto}.table table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{text-align:left;padding:12px 10px;border-bottom:1px solid #eceef1;white-space:nowrap}.table th{color:#757b85;font-weight:650}.table .actions{display:flex;gap:6px}.table button{padding:7px 10px;border-radius:9px;font-size:12px}.pill{display:inline-flex;padding:4px 8px;border-radius:99px;background:#eaf7ee;color:#1f7a3b}.pill.off{background:#fff0f0;color:#b22a2a}.check{display:flex;align-items:center}.check input{width:auto}.code{display:block;margin-top:8px;padding:14px;background:#eef3ff;color:#002fa7;border-radius:12px;font:700 13px ui-monospace;cursor:pointer}#toast{position:fixed;right:24px;bottom:24px;background:#17191d;color:#fff;border-radius:12px;padding:13px 16px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:none}

button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #99b8ff;outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.48;filter:none}.compact{padding:9px 12px;font-size:12px;margin-left:0!important}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.section-heading h2{margin-bottom:6px}.section-heading p{margin:0;max-width:72ch}.integration-notice{display:flex;align-items:flex-start;gap:10px;margin-top:18px;padding:14px 16px;border:1px solid #f1d18a;border-radius:14px;background:#fff9ed;color:#775018;font-size:13px;line-height:1.65}.integration-notice::before{content:"!";display:grid;place-items:center;flex:0 0 22px;height:22px;border-radius:50%;background:#a96c00;color:#fff;font-size:12px;font-weight:800}.integration-notice.connected{border-color:#b9dfc4;background:#f1faf3;color:#276b39}.integration-notice.connected::before{content:"✓";background:#268345}.form-grid{display:grid;gap:13px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.top-check{align-content:center;grid-template-columns:auto 1fr;align-items:center;margin-top:21px}.reward-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.reward-pair fieldset{display:grid;gap:12px;min-width:0;margin:0;padding:15px;border:1px solid #e1e4e9;border-radius:14px}.reward-pair legend{padding:0 7px;color:#282c34;font-size:13px;font-weight:800}.reward-pair small,label small{color:#858b95;font-size:11px;font-weight:500;line-height:1.55}.details-grid{padding:0 14px 14px}.campaign-list-card{align-content:start}.reset-grid{grid-template-columns:1.25fr 1fr 1fr 1.4fr 1.4fr;margin-top:18px}.risk-label{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border-radius:99px;background:#fff0f0;color:#a92828;font-size:12px;font-weight:800;white-space:nowrap}.danger-action-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px;padding-top:16px;border-top:1px solid #eee1e1}.danger-action-row p{margin:0;font-size:12px}.danger-action-row button{flex:0 0 auto}.actions .secondary{margin-left:0}.status-detail{display:grid;gap:5px}.status-detail small{color:#858b95}.person-cell{display:grid;gap:3px}.person-cell strong{font-size:13px}.person-cell small{color:#858b95}.reward-list{display:grid;gap:5px;min-width:180px}.reward-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.reward-row small{color:#777d86}.pill.pending{background:#fff7e8;color:#8b5900}.pill.qualified{background:#eef3ff;color:#234d9b}.pill.granted{background:#eaf7ee;color:#1f7a3b}.pill.revoked{background:#fff0f0;color:#b22a2a}.empty-inline{padding:24px 12px;text-align:center;color:#818791}.action-dialog{width:min(600px,calc(100vw - 32px));padding:0;border:0;border-radius:20px;background:#fff;color:#18191d;box-shadow:0 28px 90px #12182738}.action-dialog::backdrop{background:#1118277a;backdrop-filter:blur(3px)}.action-dialog form{display:grid;gap:18px;margin:0;padding:22px}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dialog-heading h2{margin-bottom:6px}.dialog-heading p{margin:0}.icon-button{display:grid;place-items:center;width:34px;height:34px;padding:0;border-radius:10px;background:#eef0f3;color:#4c515b;font-size:22px}.dialog-fields{display:grid;gap:13px}.dialog-fields .context-line{padding:12px 14px;border-radius:12px;background:#f5f6f8;color:#555b66;font-size:13px;line-height:1.6}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:4px}.dialog-actions .secondary{margin-left:0}.confirm-summary{display:grid;gap:7px;padding:14px 16px;border-radius:14px;background:#fff7f7;border:1px solid #f2cccc;font-size:13px}.confirm-summary div{display:flex;justify-content:space-between;gap:16px}.confirm-summary span{color:#717782}.confirm-summary strong{text-align:right;word-break:break-all}.confirm-audit{grid-template-columns:auto 1fr;align-items:flex-start;padding:12px;border-radius:12px;background:#f7f8fa;line-height:1.55}.confirm-audit input{margin-top:2px}.danger-dialog .dialog-heading h2{color:#a12525}.table code{font:650 12px ui-monospace,SFMono-Regular,Consolas,monospace;color:#424852}.table .muted{color:#858b95}.table .actions{flex-wrap:wrap}.table td{vertical-align:top}.table tbody tr:hover{background:#fafbfc}

@media(max-width:1120px){.reset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.shell{padding:16px}.split{grid-template-columns:1fr}.metrics{grid-template-columns:1fr}header{align-items:flex-start}.table{margin:0 -10px}.section-heading{align-items:stretch;flex-direction:column}.form-grid.two,.reward-pair,.reset-grid{grid-template-columns:1fr}.top-check{margin-top:0}.danger-action-row{align-items:stretch;flex-direction:column}.danger-action-row button{width:100%}.dialog-actions button{flex:1}.confirm-summary div{align-items:flex-start;flex-direction:column;gap:3px}.confirm-summary strong{text-align:left}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
