:root{--bg: #0f1117;--surface: #1a1d27;--surface2: #242836;--border: #2e3347;--accent: #4f8cff;--accent-dim: #2a4a8a;--accent-hover: #3d7ae8;--green: #34d399;--red: #f87171;--orange: #fbbf24;--text: #e4e7ef;--text2: #8b90a5;--radius: 12px}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}button{cursor:pointer;font-family:inherit}input,select{font-family:inherit;outline:none}.btn-primary{padding:12px 24px;background:var(--accent);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{padding:8px 16px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:13px;font-weight:500;transition:border-color .15s}.btn-secondary:hover{border-color:var(--accent)}.btn-danger{padding:4px 12px;font-size:12px;border-radius:8px;border:1px solid #7f1d1d;background:none;color:var(--red)}.btn-danger:hover{background:#7f1d1d}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;color:var(--text2);margin-bottom:6px}.form-group input,.form-group select{width:100%;padding:10px 14px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:14px;transition:border-color .15s}.form-group input:focus,.form-group select:focus{border-color:var(--accent)}.form-group input::placeholder,.form-group select::placeholder{color:var(--text2)}.badge{font-size:10px;padding:2px 8px;border-radius:10px;font-weight:600}.badge.badge-admin{background:var(--accent-dim);color:var(--accent)}.badge.badge-sent{background:rgba(42,74,138,.2);color:var(--accent)}.badge.badge-acked{background:rgba(251,191,36,.2);color:var(--orange)}.badge.badge-completed{background:rgba(52,211,153,.2);color:var(--green)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}
