*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--brand-blue:#1e5fa8;--brand-blue-dark:#174d8c;--brand-blue-light:#e8f0fb;--brand-navy:#132448;--brand-navy-mid:#1a3060;--bg:#f0f4f9;--surface:#fff;--surface-alt:#f8fafc;--border:#dce4ef;--border-focus:#1e5fa8;--sidebar-bg:#132448;--sidebar-hover:#ffffff0f;--sidebar-active:#1e5fa859;--sidebar-text:#8fa8c8;--sidebar-text-active:#fff;--text:#1a2a40;--text-muted:#6b7d96;--text-light:#9aafc8;--green:#15803d;--green-bg:#dcfce7;--red:#b91c1c;--red-bg:#fee2e2;--amber:#b45309;--amber-bg:#fef3c7;--font-sans:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", monospace;--shadow-sm:0 1px 3px #13244814, 0 1px 2px #1324480f;--shadow-md:0 4px 12px #1324481a, 0 2px 4px #1324480f;--shadow-lg:0 8px 24px #13244824, 0 4px 8px #13244814}html,body,#root{height:100%}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}input,select,textarea,button{font-family:var(--font-sans)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-light)}::selection{background:var(--brand-blue-light);color:var(--brand-blue)}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.fade-up{animation:.3s forwards fadeUp}.fade-up-1{opacity:0;animation:.3s 50ms forwards fadeUp}.fade-up-2{opacity:0;animation:.3s .1s forwards fadeUp}.fade-up-3{opacity:0;animation:.3s .15s forwards fadeUp}.fade-up-4{opacity:0;animation:.3s .2s forwards fadeUp}.jg-input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:6px;outline:none;padding:9px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}.jg-input:focus{border-color:var(--brand-blue);box-shadow:0 0 0 3px #1e5fa81f}.jg-input::placeholder{color:var(--text-light)}.jg-label{color:var(--text-muted);letter-spacing:.3px;text-transform:uppercase;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.jg-btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex}.jg-btn:disabled{opacity:.5;cursor:not-allowed}.jg-btn-primary{background:var(--brand-blue);color:#fff;border-color:var(--brand-blue)}.jg-btn-primary:hover:not(:disabled){background:var(--brand-blue-dark)}.jg-btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.jg-btn-secondary:hover:not(:disabled){background:var(--bg);border-color:var(--text-light)}.jg-btn-danger{color:#fff;background:#dc2626}.jg-btn-danger:hover:not(:disabled){background:#b91c1c}.jg-btn-success{color:#fff;background:#16a34a}.jg-btn-success:hover:not(:disabled){background:#15803d}.jg-btn-amber{color:#fff;background:#d97706}.jg-btn-amber:hover:not(:disabled){background:#b45309}.jg-btn-icon{border:1px solid var(--border);cursor:pointer;color:var(--text-muted);background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:7px;transition:all .15s;display:inline-flex}.jg-btn-icon:hover{background:var(--bg);color:var(--text)}.jg-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:8px}.jg-badge{border-radius:12px;align-items:center;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.jg-table{border-collapse:collapse;width:100%}.jg-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--surface-alt);border-bottom:1px solid var(--border);padding:10px 14px;font-size:11px;font-weight:600}.jg-table td{border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;padding:12px 14px}.jg-table tr:last-child td{border-bottom:none}.jg-table tbody tr{transition:background .1s}.jg-table tbody tr:hover{background:var(--surface-alt)}.jg-alert{border-radius:6px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;display:flex}.jg-alert-error{background:var(--red-bg);color:var(--red);border:1px solid #fca5a5}.jg-alert-success{background:var(--green-bg);color:var(--green);border:1px solid #86efac}.jg-spinner{border:2px solid var(--border);border-top-color:var(--brand-blue);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}
