:root{--cam-blue: #0072cf;--cam-blue-dark: #003e74;--cam-blue-light: #8ecae6;--cam-red: #d6083b;--cam-green: #17a673;--cam-amber: #e87722;--cam-ink: #171717;--cam-ink-muted: #595959;--cam-line: #d4d4d4;--cam-surface: #ffffff;--cam-surface-alt: #f6f7f9;--cam-surface-muted: #eef1f4;--cam-font-display: "Source Serif Pro", "Charter", "Georgia", serif;--cam-font-body: "Source Sans Pro", "Helvetica Neue", Arial, sans-serif;--cam-font-mono: "Source Code Pro", "Consolas", "Menlo", monospace;--cam-space-1: 4px;--cam-space-2: 8px;--cam-space-3: 12px;--cam-space-4: 16px;--cam-space-5: 24px;--cam-space-6: 32px;--cam-space-7: 48px;--cam-radius-sm: 2px;--cam-radius-md: 4px;--cam-radius-lg: 8px;--cam-shadow-1: 0 1px 2px rgba(0, 0, 0, .06), 0 1px 3px rgba(0, 0, 0, .08);--cam-shadow-2: 0 4px 12px rgba(0, 0, 0, .08);--cam-focus-ring: 0 0 0 3px rgba(0, 114, 207, .35)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--cam-font-body);font-size:16px;line-height:1.5;color:var(--cam-ink);background:var(--cam-surface-alt);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--cam-font-display);color:var(--cam-blue-dark);margin:0}h1{font-size:1.875rem;font-weight:600}h2{font-size:1.375rem;font-weight:600}a{color:var(--cam-blue)}:focus-visible{outline:none;box-shadow:var(--cam-focus-ring);border-radius:var(--cam-radius-sm)}.cam-app{display:flex;flex-direction:column;min-height:100vh}.cam-header{background:var(--cam-blue-dark);color:#fff;padding:var(--cam-space-4) var(--cam-space-6);box-shadow:var(--cam-shadow-1);display:flex;align-items:center;justify-content:space-between}.cam-header h1{color:#fff;font-size:1.25rem;letter-spacing:.02em}.cam-header__user{font-size:.875rem;opacity:.9}.cam-main{flex:1;padding:var(--cam-space-6);max-width:1200px;width:100%;margin:0 auto}.cam-panel{background:var(--cam-surface);border:1px solid var(--cam-line);border-radius:var(--cam-radius-lg);box-shadow:var(--cam-shadow-1);padding:var(--cam-space-5)}.cam-panel__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--cam-space-4);gap:var(--cam-space-4);flex-wrap:wrap}.cam-panel__actions{display:flex;gap:var(--cam-space-3);justify-content:flex-end;margin-bottom:var(--cam-space-4)}.cam-search-bar{display:flex;gap:var(--cam-space-2);margin-bottom:var(--cam-space-4)}.cam-search-bar__input{flex:1;min-width:0}.cam-search-bar__input input{border:none;box-shadow:none}.cam-search-bar__button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;width:40px;height:40px;min-width:40px;line-height:1}.cam-search-bar__button .MuiSvgIcon-root{display:block}.cam-button,.cam-button .MuiTypography-root{color:#fff!important}.cam-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--cam-space-2);padding:var(--cam-space-2) var(--cam-space-4);border-radius:var(--cam-radius-md);border:1px solid transparent;font-family:inherit;font-size:.9375rem;font-weight:600;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease;min-height:40px}.cam-button:disabled{cursor:not-allowed;opacity:.55}.cam-button--primary{background:var(--cam-blue);color:#fff;border-color:var(--cam-blue)}.cam-button--primary:hover:not(:disabled){background:var(--cam-blue-dark);border-color:var(--cam-blue-dark)}.cam-button--secondary{background:var(--cam-surface);color:#fff;border-color:var(--cam-blue-dark)}.cam-button--secondary:hover:not(:disabled){background:var(--cam-surface-muted)}.cam-grid{width:100%;border-collapse:collapse;font-size:.9375rem}.cam-grid thead{background:var(--cam-surface-muted)}.cam-grid th,.cam-grid td{text-align:left;padding:var(--cam-space-3) var(--cam-space-4);border-bottom:1px solid var(--cam-line);vertical-align:middle}.cam-grid th{font-weight:600;color:var(--cam-blue-dark);text-transform:uppercase;font-size:.75rem;letter-spacing:.06em}.cam-grid tbody tr{transition:background-color .1s ease}.cam-grid tbody tr[data-selected=true]{background:#0072cf14}.cam-grid tbody tr:hover{background:var(--cam-surface-alt)}.cam-grid__key{font-family:var(--cam-font-mono);font-size:.85rem;color:var(--cam-ink)}.cam-grid input[type=radio]{accent-color:var(--cam-blue);width:18px;height:18px}.cam-grid__filterable-header{display:inline-flex;align-items:center;justify-content:flex-start;gap:var(--cam-space-1);position:relative}.cam-grid__filter-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;border-radius:var(--cam-radius-sm);padding:2px;width:24px;height:24px;cursor:pointer;color:var(--cam-ink-muted);transition:color .12s ease,background-color .12s ease}.cam-grid__filter-btn:hover{color:var(--cam-blue);background:#0072cf14}.cam-grid__filter-btn--active{color:var(--cam-blue)}.cam-grid__filter-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:100;list-style:none;margin:0;padding:var(--cam-space-1) 0;background:var(--cam-surface);border:1px solid var(--cam-line);border-radius:var(--cam-radius-md);box-shadow:var(--cam-shadow-2);min-width:120px}.cam-grid__filter-dropdown li{margin:0;padding:0}.cam-grid__filter-option{display:block;width:100%;text-align:left;border:0;background:transparent;padding:var(--cam-space-2) var(--cam-space-3);font-size:.8125rem;font-weight:500;text-transform:none;letter-spacing:normal;color:var(--cam-ink);cursor:pointer;transition:background-color .1s ease}.cam-grid__filter-option:hover{background:var(--cam-surface-alt)}.cam-grid__filter-option--selected{color:var(--cam-blue);background:#0072cf14}.cam-pagination{display:flex;align-items:center;justify-content:flex-end;gap:var(--cam-space-4);padding:var(--cam-space-3) 0;margin-top:var(--cam-space-3);font-size:.875rem;color:var(--cam-ink-muted)}.cam-pagination__rows-per-page{display:flex;align-items:center;gap:var(--cam-space-2)}.cam-pagination__controls{display:flex;gap:var(--cam-space-2)}.cam-pagination__button{padding:var(--cam-space-1) var(--cam-space-3);min-height:32px;font-size:.8125rem}.cam-select{font-family:inherit;font-size:.875rem;padding:var(--cam-space-1) var(--cam-space-2);border:1px solid var(--cam-line);border-radius:var(--cam-radius-md);background:var(--cam-surface);color:var(--cam-ink);cursor:pointer}.cam-select:focus-visible{border-color:var(--cam-blue)}.cam-pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.cam-pill--active{background:#17a6731f;color:#0f7a52}.cam-pill--inactive{background:#5959591f;color:var(--cam-ink-muted)}.cam-banner{padding:var(--cam-space-3) var(--cam-space-4);border-radius:var(--cam-radius-md);margin-bottom:var(--cam-space-4);font-size:.9375rem;border-left:4px solid transparent}.cam-banner--error{background:#d6083b14;border-left-color:var(--cam-red);color:#8a0526}.cam-banner--success{background:#17a6731f;border-left-color:#17a673;color:#0f7a52}.cam-banner--info{background:#0072cf14;border-left-color:var(--cam-blue);color:var(--cam-blue-dark)}.cam-modal__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#17171773;display:flex;align-items:center;justify-content:center;z-index:1000}.cam-modal{background:var(--cam-surface);border-radius:var(--cam-radius-lg);box-shadow:var(--cam-shadow-2);width:min(480px,calc(100vw - 32px));padding:var(--cam-space-5)}.cam-modal h2{margin-bottom:var(--cam-space-4)}.cam-field{display:flex;flex-direction:column;gap:var(--cam-space-2);margin-bottom:var(--cam-space-4)}.cam-field label{font-weight:600;font-size:.875rem;color:var(--cam-ink)}.cam-input{font-family:inherit;font-size:1rem;padding:var(--cam-space-2) var(--cam-space-3);border:1px solid var(--cam-line);border-radius:var(--cam-radius-md);background:var(--cam-surface)}.cam-input:focus-visible{border-color:var(--cam-blue)}.cam-confirm__message{margin:0 0 var(--cam-space-4) 0;font-size:.9375rem;line-height:1.6;color:var(--cam-ink)}.cam-modal__actions{display:flex;justify-content:flex-end;gap:var(--cam-space-3);margin-top:var(--cam-space-5)}.cam-empty{padding:var(--cam-space-7) var(--cam-space-4);text-align:center;color:var(--cam-ink-muted)}.cam-spinner{width:20px;height:20px;border-radius:50%;border:2px solid rgba(0,114,207,.25);border-top-color:var(--cam-blue);animation:cam-spin .8s linear infinite;display:inline-block}@keyframes cam-spin{to{transform:rotate(360deg)}}
