:root{--cgp-blue: #0071BB;--cgp-blue-dark: #005a96;--cgp-blue-light: #e6f2fb;--cgp-navy: #0E2841;--cgp-red: #E4051F;--cgp-red-light: #fdeef0;--cgp-dark: #3A455C;--cgp-slate: #5C6B84;--cgp-mid: #CBD2DA;--cgp-light: #F2F4F7;--cgp-green: #1a7a4a;--cgp-green-light: #e8f5ee;--cgp-amber: #b85c00;--cgp-amber-light: #fef3e2;--topbar-height: 56px;--content-max-width: 1440px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .12)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Jost,sans-serif;color:var(--cgp-dark);background:var(--cgp-light);line-height:1.5;min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}table{width:100%;border-collapse:collapse}input,select,textarea{font-family:inherit;font-size:inherit}.container{max-width:var(--content-max-width);margin:0 auto;padding:0 24px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.text-muted{color:var(--cgp-slate)}.text-navy{color:var(--cgp-navy)}.text-blue{color:var(--cgp-blue)}.text-red{color:var(--cgp-red)}.text-green{color:var(--cgp-green)}.text-amber{color:var(--cgp-amber)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-xs{gap:4px}.gap-sm{gap:8px}.gap-md{gap:16px}.gap-lg{gap:24px}.gap-xl{gap:32px}.grid{display:grid}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-weight:500;font-size:.875rem;border:none;transition:background-color .15s,opacity .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--cgp-blue);color:#fff}.btn-primary:hover:not(:disabled){background:var(--cgp-blue-dark)}.btn-danger{background:var(--cgp-red);color:#fff}.btn-danger:hover:not(:disabled){background:#c00418}.btn-ghost{background:transparent;color:var(--cgp-blue);border:1px solid var(--cgp-mid)}.btn-ghost:hover:not(:disabled){background:var(--cgp-blue-light)}.btn-sm{padding:4px 10px;font-size:.8125rem}.input{padding:8px 12px;border:1px solid var(--cgp-mid);border-radius:var(--radius-sm);background:#fff;color:var(--cgp-dark);outline:none;transition:border-color .15s}.input:focus{border-color:var(--cgp-blue);box-shadow:0 0 0 2px #0071bb26}.select{padding:8px 12px;border:1px solid var(--cgp-mid);border-radius:var(--radius-sm);background:#fff;color:var(--cgp-dark);outline:none;cursor:pointer}.select:focus{border-color:var(--cgp-blue)}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th{text-align:left;padding:10px 12px;font-weight:600;color:var(--cgp-navy);border-bottom:2px solid var(--cgp-mid);white-space:nowrap}.data-table td{padding:10px 12px;border-bottom:1px solid var(--cgp-light);vertical-align:middle}.data-table tbody tr{transition:background-color .1s}.data-table tbody tr:hover{background:var(--cgp-blue-light)}.data-table tbody tr.clickable{cursor:pointer}.tabs{display:flex;gap:0;border-bottom:2px solid var(--cgp-mid)}.tab{padding:10px 20px;font-weight:500;color:var(--cgp-slate);border:none;background:none;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.tab:hover{color:var(--cgp-blue)}.tab.active{color:var(--cgp-blue);border-bottom-color:var(--cgp-blue)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e284180;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:var(--radius-md);padding:24px;min-width:400px;max-width:560px;width:100%;box-shadow:var(--shadow-lg)}.modal-title{font-size:1.125rem;font-weight:600;color:var(--cgp-navy);margin-bottom:16px}.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--cgp-mid);border-top-color:var(--cgp-blue);border-radius:50%;animation:spin .6s linear infinite}.spinner-lg{width:32px;height:32px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.loading-center{display:flex;align-items:center;justify-content:center;padding:48px}.skeleton{background:linear-gradient(90deg,var(--cgp-light) 25%,#e8ecf0 50%,var(--cgp-light) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}
