:root{--brand-50:#e6f7ef;--brand-100:#c2ecd7;--brand-500:#00a65a;--brand-600:#00944f;--brand-700:#007a41;--neutral-0:#fff;--neutral-50:#f8f9fb;--neutral-100:#f1f3f6;--neutral-200:#e4e7ec;--neutral-300:#d0d5dd;--neutral-400:#98a2b3;--neutral-500:#667085;--neutral-600:#475467;--neutral-700:#344054;--neutral-800:#1d2939;--neutral-900:#101828;--color-bg:var(--neutral-50);--color-surface:var(--neutral-0);--color-border:var(--neutral-200);--color-text:var(--neutral-800);--color-text-muted:var(--neutral-500);--color-primary:var(--brand-500);--color-primary-hover:var(--brand-600);--color-primary-soft:var(--brand-50);--color-danger:#d92d20;--color-danger-soft:#fef3f2;--color-warning:#f79009;--color-warning-soft:#fffaeb;--color-info:#0d6efd;--color-info-soft:#f0f7fd;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:999px;--shadow-sm:0 1px 2px #1018280d;--shadow-md:0 4px 12px #10182814;--shadow-lg:0 12px 32px #1018281f;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--text-xs:12px;--text-sm:13.5px;--text-md:15px;--text-lg:18px;--text-xl:22px;--transition-fast:120ms ease;--transition-base:200ms ease}.btn{border-radius:var(--radius-sm);box-shadow:none;font-size:var(--text-sm);font-weight:600;padding:.5rem 1rem;transition:filter var(--transition-fast),box-shadow var(--transition-fast)}.btn:hover{filter:brightness(.96)}.btn:focus-visible{box-shadow:0 0 0 3px var(--color-primary-soft)}.btn-success{background-color:var(--color-primary);border-color:var(--color-primary)}.btn-success:focus,.btn-success:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-icon{align-items:center;display:inline-flex;flex-shrink:0;height:38px;justify-content:center;padding:0;width:38px}.table{--bs-table-bg:#0000;font-size:var(--text-sm)}.table thead th{background-color:var(--color-bg);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:600;letter-spacing:.03em;text-transform:uppercase;vertical-align:middle}.table tbody td{border-color:var(--color-border);vertical-align:middle}.table-responsive{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto;overflow-y:hidden}.table-responsive .table{margin-bottom:0}.form-control,.form-select{border-color:var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm)}.form-control:focus,.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.modal-content{border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.modal-footer,.modal-header{border-color:var(--color-border)}.dropdown-menu{border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-1)}.dropdown-item{padding:var(--space-2) var(--space-3)}.callout,.dropdown-item{border-radius:var(--radius-sm);font-size:var(--text-sm)}.callout{background-color:var(--color-info-soft);border-left:3px solid var(--color-info);color:var(--color-text);padding:var(--space-2) var(--space-4)}.pagination{margin-bottom:0}.pagination .page-link{border-color:var(--color-border);color:var(--color-text);font-size:var(--text-sm);padding:.35rem .7rem}.pagination .page-item.active .page-link{background-color:var(--color-primary);border-color:var(--color-primary)}.pagination .page-link:hover{background-color:var(--color-bg)}.status-badge{align-items:center;border-radius:var(--radius-full);display:inline-flex;font-size:var(--text-xs);font-weight:600;gap:6px;padding:2px 10px}.status-badge--active{background-color:var(--color-primary-soft);color:var(--color-primary-hover)}.status-badge--inactive{background-color:var(--color-danger-soft);color:var(--color-danger)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.dropdown-hover :hover{background-color:#00a65a;color:#fff}.callout{border-left:5px solid #0d6efd;border-radius:2px;font-size:14px;margin-bottom:0;padding:10px 15px}.callout,.callout-info{background-color:#f0f7fd;color:#000}.callout-info{border-left-color:#d0e3f0}.dropdown-container{align-items:center;display:flex;justify-content:center;text-align:right}.dropdown-select{width:auto}@media (max-width:768px){.dropdown-container{display:block;text-align:right}.dropdown-select{width:100%}}.app-navbar{background-color:var(--color-surface);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-6);padding:var(--space-3) var(--space-5)}.app-navbar__brand{align-items:center;display:flex;font-size:var(--text-lg);font-weight:700;line-height:1.3;text-decoration:none}.app-navbar__brand,.app-navbar__brand:hover{color:var(--color-text)}.app-navbar__logo{height:44px;margin-right:var(--space-3);width:44px}.app-navbar__title{font-size:var(--text-md)}.app-navbar__user{align-items:center;background:none;border:none;border-radius:var(--radius-full);display:flex;padding:var(--space-1) var(--space-2);transition:background-color var(--transition-fast)}.app-navbar__user:hover{background-color:var(--color-bg)}.app-navbar__avatar{height:36px;object-fit:cover;width:36px}.app-navbar__username{color:var(--color-text);font-size:var(--text-sm);font-weight:600;margin-left:var(--space-2)}.log-viewer__actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:flex-end}.log-viewer__content{background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);max-height:500px;overflow-y:auto;padding:var(--space-4)}.log-viewer__content pre{font-size:var(--text-sm);margin:0;white-space:pre-wrap;word-break:break-word}