@import "https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700&display=swap";:root{--color-primary:#038489;--color-primary-hover:#026f73;--color-primary-pressed:#025b5f;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#9ca3af;--color-gray-500:#6b7280;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-gray-900:#111827;--color-success-500:#10b981;--color-success-700:#059669;--color-warning-500:#f59e0b;--color-error-500:#ef4444;--color-error-700:#b91c1c;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:30px;--shadow-soft:0 8px 20px #11182714;--focus-ring:0 0 0 3px #03848933}*{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--color-gray-900);background:var(--color-gray-50);margin:0;font-family:Roboto,Segoe UI,sans-serif;font-size:16px;line-height:1.45}h1,h2,h3,h4,h5,h6{color:var(--color-gray-900);margin:0}h1{font-size:32px;font-weight:700}h2{font-size:24px;font-weight:600}p{margin:0}a{color:var(--color-primary)}button,input,select,textarea{font-family:inherit}button{min-height:40px;padding:0 var(--space-md);border-radius:var(--radius-pill);border:1px solid var(--color-primary);color:var(--color-primary);letter-spacing:0;cursor:pointer;background:#fff;font-size:18px;font-weight:500;transition:background-color .12s,border-color .12s,color .12s,box-shadow .12s}button:hover:not(:disabled){box-shadow:var(--shadow-soft)}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:var(--focus-ring);outline:none}button:disabled{border-color:var(--color-gray-300);color:var(--color-gray-500);cursor:not-allowed;box-shadow:none;background:#d1d5db66}.btn{justify-content:center;align-items:center;min-width:70px;display:inline-flex}.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-primary:active:not(:disabled){background:var(--color-primary-pressed);border-color:var(--color-primary-pressed)}.btn-secondary{border-color:var(--color-primary);color:var(--color-primary);background:#fff}.btn-danger{border-color:var(--color-error-700);color:var(--color-error-700)}.btn-icon{width:32px;min-width:32px;height:32px;min-height:32px;color:var(--color-gray-500);background:0 0;border:none;border-radius:50%;padding:0}.btn-icon:hover:not(:disabled){color:var(--color-gray-700);background:var(--color-gray-100);box-shadow:none}input,select{border:1px solid var(--color-gray-300);border-radius:var(--radius-sm);height:40px;color:var(--color-gray-900);background:#fff;padding:0 12px;font-size:14px}textarea{border:1px solid var(--color-gray-300);border-radius:var(--radius-sm);min-height:120px;color:var(--color-gray-900);resize:vertical;background:#fff;padding:12px;font-size:18px}textarea::placeholder,input::placeholder{color:var(--color-gray-400)}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--color-gray-200);padding:10px 12px;font-size:14px}th{text-align:left;color:var(--color-gray-700);font-weight:500}.data-table-wrap{border:1px solid var(--color-gray-200);border-radius:var(--radius-sm);background:#fff;width:100%;overflow-x:auto}.data-table{min-width:720px}.data-table th{background:var(--color-gray-50);color:var(--color-gray-700);letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:700}.data-table-sort-button{width:100%;min-width:0;min-height:0;color:inherit;font-size:inherit;font-weight:inherit;text-transform:inherit;background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:center;gap:8px;padding:0;display:inline-flex}.data-table-sort-button:hover:not(:disabled){box-shadow:none;color:var(--color-primary)}.data-table-sort-button:active:not(:disabled){transform:none}.data-table-sort-indicator{color:var(--color-gray-400);font-size:11px}.data-table td{color:var(--color-gray-900)}.data-table tbody tr{transition:background-color .12s}.data-table tbody tr.clickable-row{cursor:pointer}.data-table tbody tr.clickable-row:hover{background:#f8fbfb}.data-table tbody tr.highlighted-row{background:#eff6ff}.data-table tbody tr.clickable-row:focus-visible{box-shadow:inset var(--focus-ring);outline:none}.monospace-cell{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px}.status-pill{border-radius:var(--radius-pill);align-items:center;min-height:24px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.status-pill.active{color:var(--color-success-700);background:#ecfdf5}.status-pill.inactive{background:var(--color-gray-100);color:var(--color-gray-700)}.empty-state{color:var(--color-gray-700)}.app-shell{flex-direction:column;min-height:100%;display:flex}.app-content-row{flex:1;min-height:0;display:flex}.app-main-column{flex-direction:column;flex:1;min-width:0;display:flex}.app-main{padding:var(--space-lg);flex:1;overflow:auto}.app-footer{border-top:1px solid var(--color-gray-200);color:var(--color-gray-500);padding:10px var(--space-lg);text-align:center;background:#fff;font-size:12px;line-height:1.4}.app-header{z-index:100;background:#ececec;border-bottom:2px solid #e5e7eb;align-items:stretch;height:74px;padding:0;display:flex;position:sticky;top:0;overflow:visible}.app-banner-left{background:#f2f2f2;justify-content:center;align-items:center;width:320px;min-width:320px;padding:0;display:flex;position:relative}.brand-logo{object-fit:contain;z-index:1;width:294px;height:42px;display:block;position:relative}.app-banner-right{color:#fff;background:#343d87;flex:1;justify-content:space-between;align-items:center;min-width:0;padding:0 20px 0 48px;display:flex;position:relative;overflow:visible}.header-image{object-fit:cover;object-position:left center;opacity:.65;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.app-banner-right:before{content:"";z-index:0;background:#343d87;width:58px;height:100%;position:absolute;top:0;left:-28px;transform:skew(-26deg)}.app-name{color:#fff;white-space:nowrap;z-index:1;align-items:center;width:auto;height:auto;font-size:34px;font-weight:700;line-height:1;display:inline-flex}.app-banner-actions{z-index:1;align-items:center;gap:10px;display:flex}.notif-button{color:#f3f4f6;background:0 0;border:none;border-radius:50%;width:32px;min-width:32px;height:32px;min-height:32px;padding:0;position:relative}.notif-button:hover:not(:disabled){box-shadow:none;background:#ffffff1f}.notif-badge{color:#fff;background:#ef4444;border:2px solid #343d87;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;font-size:11px;font-weight:700;display:inline-flex;position:absolute;top:-3px;right:-4px}.user-menu{position:relative}.user-menu-trigger{color:#fff;background:0 0;border:none;border-radius:999px;align-items:center;gap:6px;min-width:36px;min-height:36px;padding:0 2px;display:inline-flex}.user-avatar{color:#4b5563;background:#eee;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:24px;font-weight:700;display:inline-flex}.user-menu-dropdown{top:calc(100% + var(--space-sm));border:1px solid var(--color-gray-200);border-radius:var(--radius-md);width:260px;box-shadow:var(--shadow-soft);z-index:200;background:#fff;position:absolute;right:0;overflow:hidden}.user-menu-meta{border-bottom:1px solid var(--color-gray-200);padding:12px 16px}.sidebar{width:240px;color:var(--color-gray-300);padding:var(--space-md);gap:var(--space-md);background:#343d87;flex-direction:column;display:flex}.sidebar-list{flex-direction:column;flex:1;gap:2px;margin:0;padding:0;list-style:none;display:flex}.sidebar-link{color:inherit;border-radius:var(--radius-sm);padding:10px 12px;font-size:14px;text-decoration:none;display:block}.sidebar-link.active{color:#fff;background:#03848933}.offline-indicator{background:var(--color-warning-500);color:#fff;text-align:center;padding:8px;font-size:14px}.error-banner{margin:var(--space-md);border-radius:var(--radius-sm);color:var(--color-error-700);align-items:center;gap:var(--space-sm);background:#fef2f2;border:1px solid #fca5a5;padding:12px 16px;display:flex}.modal-backdrop{z-index:1000;padding:var(--space-md);background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{border-radius:var(--radius-lg);width:min(500px,100%);max-height:min(80vh,800px);padding:var(--space-lg);background:#fff;overflow:auto;box-shadow:0 22px 50px #11182740}.modal-title{font-size:24px;font-weight:600}.modal-body{color:var(--color-gray-700);margin-top:12px;font-size:18px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.toast-container{right:var(--space-lg);bottom:var(--space-lg);gap:var(--space-sm);z-index:9999;flex-direction:column;display:flex;position:fixed}.toast{border-radius:var(--radius-md);min-width:300px;max-width:400px;padding:var(--space-md);justify-content:space-between;align-items:center;gap:var(--space-md);font-size:14px;display:flex}.toast.success{color:var(--color-success-700);background:#ecfdf5;border:1px solid #a7f3d0}.toast.error{color:var(--color-error-700);background:#fef2f2;border:1px solid #fecaca}.toast.warning{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.toast.info{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.pagination{align-items:center;gap:var(--space-sm);margin-top:var(--space-md);flex-wrap:wrap;display:flex}.pagination .current-page{font-weight:700}.resolve-identity-form{grid-template-columns:minmax(180px,.8fr) minmax(260px,1fr) auto;align-items:start;gap:12px;max-width:700px;margin-bottom:2rem;display:grid}.resolve-field{min-width:0}.resolve-field-label{margin-bottom:4px;font-size:14px;font-weight:600;display:block}.resolve-field select{width:100%}.resolve-field-help{min-height:18px;color:var(--color-gray-500);margin:2px 0 0;font-size:12px;line-height:18px}.resolve-submit{color:#fff;border-radius:var(--radius-sm);background:#2563eb;border:none;align-self:start;margin-top:24px;padding:0 18px;font-size:14px}@media (width<=960px){.app-content-row{flex-direction:column}.sidebar{width:100%;min-height:auto}.app-main{padding:var(--space-md)}.app-header{flex-direction:column;height:auto}.app-banner-left,.app-banner-right{width:100%;min-width:0}.app-banner-right{padding:10px 12px 10px 20px}.app-banner-right:before,.app-banner-accent{display:none}.brand-logo{width:240px;height:34px}.app-name{font-size:28px}.resolve-identity-form{grid-template-columns:1fr;max-width:none}.resolve-submit{width:fit-content;margin-top:0}}
