body{background:#fff}:root{--color-primary: #2563eb;--color-primary-hover: #1e40af;--color-success: #16a34a;--color-danger: #ef4444;--color-outline: #e5e7eb;--text-default: #111827;--text-muted: #6b7280;--surface: #ffffff;--surface-2: #f9fafb;--border: #e5e7eb}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text-default);background:#fff;line-height:1.4}.main-content{max-width:1100px;margin:20px auto;padding:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:0 8px 24px #0000000f}.table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.table th,.table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}.table thead th{background:var(--surface-2);font-weight:600}.table tbody tr:nth-child(2n){background:#fcfcfc}.table tbody tr:hover{background:#f6f7fb}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:8px;padding:8px 12px;font-size:14px;font-weight:600;cursor:pointer;background:var(--surface-2);color:var(--text-default);transition:filter .15s ease,background .15s ease,border-color .15s ease}button:disabled,.btn:disabled{opacity:.65;cursor:not-allowed}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-success{background:var(--color-success);border-color:var(--color-success);color:#fff}.btn-success:hover:not(:disabled){filter:brightness(.95)}.btn-danger{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(.95)}.btn-outline{background:transparent;color:var(--text-default);border-color:var(--outline)}.btn-outline:hover:not(:disabled){background:#f3f4f6}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid var(--border);color:var(--text-default);background:#f4f6fb}.status-bar{position:fixed;left:0;right:0;bottom:0;padding:10px 14px;background:#1e58e0;color:red;border-top:1px solid rgba(32,31,31,.08);z-index:9999;font-size:14px}.status-bar.success{background:#065f46}.status-bar.error{background:#7f1d1d}.status-bar.info{background:#0f172a}
