/* OmniGentAi presentation tokens. No remote font or runtime dependency. */
:root {
  --omni-bg: #F8FAFC;
  --omni-surface: #FFFFFF;
  --omni-surface-soft: #F9FAFC;
  --omni-text: #1F2937;
  --omni-text-muted: #6B7280;
  --omni-primary: var(--agency-primary, #484D75);
  --omni-primary-hover: var(--agency-primary, #383D63);
  --omni-primary-ink: #484D75;
  --omni-sidebar: var(--agency-primary, #484D75);
  --omni-sidebar-end: var(--agency-primary, #224ABE);
  --omni-sidebar-image: linear-gradient(170deg,var(--omni-sidebar),var(--omni-sidebar-end));
  --omni-sidebar-hover: #FFFFFF12;
  --omni-sidebar-active: #FFFFFF24;
  --omni-sidebar-width: 288px;
  --omni-sidebar-compact-width: 100px;
  --omni-primary-soft: #EEF0F8;
  --omni-border: #E5E7EB;
  --omni-accent: #224ABE;
  --omni-success: #21845A;
  --omni-warning: #B7791F;
  --omni-danger: #C34848;
  --omni-radius-sm: 8px;
  --omni-radius-md: 12px;
  --omni-radius-lg: 16px;
  --omni-shadow: 0 4px 20px rgba(31,41,55,.05);
  --omni-font: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --omnigent-surface: var(--omni-surface);
  --omnigent-surface-muted: var(--omni-surface-soft);
  --omnigent-border: var(--omni-border);
  --omnigent-border-strong: #D5D9E2;
  --omnigent-text: var(--omni-text);
  --omnigent-muted: var(--omni-text-muted);
  --omnigent-primary: var(--omni-primary);
  --omnigent-primary-dark: var(--omni-primary-hover);
  --omnigent-primary-soft: var(--omni-primary-soft);
  --omnigent-sidebar-start: var(--omni-sidebar);
  --omnigent-sidebar-end: var(--omni-sidebar-end);
  --omnigent-focus: rgba(72,77,117,.15);
  --omnigent-radius: var(--omni-radius-md);
  --omnigent-shadow: var(--omni-shadow);
}
.omni-ui { margin: 0; background: var(--omni-bg); color: var(--omni-text); font: 14px/1.55 var(--omni-font); }
.omni-ui *, .omni-ui *::before, .omni-ui *::after { box-sizing: border-box; }
.omni-ui :where(h1,h2,h3,h4,h5,h6) { color: var(--omni-text); font-family: var(--omni-font); font-weight: 600; letter-spacing: -.025em; line-height: 1.3; }
.omni-ui h1 { font-size: clamp(26px,2.5vw,32px); }
.omni-ui h2 { font-size: 20px; }
.omni-ui h3 { font-size: 17px; }
.omni-ui :where(a) { color: var(--omni-primary-ink); text-underline-offset: 3px; }
.omni-ui :where(a:hover) { color: var(--omni-primary-hover); }
.omni-ui :where(button:not(.fa):not(.fas):not(.far):not(.fab):not([class*="fa-"]),input,select,textarea) { font-family: var(--omni-font); }
.omni-ui :where(label) { color: var(--omni-text); font-size: 13px; font-weight: 500; }
.omni-ui :where(small,.text-muted,.form-text) { color: var(--omni-text-muted); font-size: 12px; line-height: 1.6; }
.omni-ui :where(input[type=checkbox],input[type=radio],progress) { accent-color: var(--omni-primary); }
.omni-ui :where(input[type=checkbox],input[type=radio]) { width: 17px; height: 17px; flex-shrink: 0; }
.omni-ui .form-control, .omni-ui .custom-select {
  min-height: 44px; height: auto; padding: 10px 12px; border: 1px solid var(--omni-border);
  border-radius: var(--omni-radius-sm); background-color: var(--omni-surface); color: var(--omni-text);
  font-size: 14px; line-height: 1.5; box-shadow: none; max-width: 100%;
}
.omni-ui :where(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]):not([type=hidden]):not([type=submit]),select,textarea):not(.form-control):not(.custom-select) {
  max-width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--omni-border);
  border-radius: var(--omni-radius-sm); background: var(--omni-surface); color: var(--omni-text);
}
.omni-ui textarea { resize: vertical; }
.omni-ui input::placeholder, .omni-ui textarea::placeholder { color: #8A93A3; opacity: 1; }
.omni-ui .form-control:focus, .omni-ui .custom-select:focus { border-color: var(--omni-primary); box-shadow: 0 0 0 3px rgba(72,77,117,.12); }
.omni-ui :where(button,a,input,select,textarea,summary):focus-visible { outline: 3px solid #8C93BF !important; outline-offset: 3px; }
.omni-ui :where(input,select,textarea):disabled { background-color: var(--omni-surface-soft); }
.omni-ui .btn {
  display: inline-flex; justify-content: center; align-items: center; gap: 8px; min-height: 44px;
  padding: 10px 16px; border-radius: var(--omni-radius-sm); font-size: 13px; font-weight: 600;
  line-height: 1.45; white-space: normal; box-shadow: none !important; text-decoration: none;
  transition: background-color .15s, border-color .15s, box-shadow .15s;
}
.omni-ui .btn-primary, .omni-ui .btn-outline-primary:hover {
  background: var(--omni-primary) !important; border-color: var(--omni-primary) !important; color: var(--agency-fg, #fff) !important;
}
.omni-ui .btn-primary:hover, .omni-ui .btn-primary:focus { background: var(--omni-primary-hover) !important; border-color: var(--omni-primary-hover) !important; }
.omni-ui .btn-light, .omni-ui .btn-outline-primary, .omni-ui .btn-secondary {
  background: var(--omni-surface); border: 1px solid var(--omni-border); color: var(--omni-primary-ink);
}
.omni-ui .btn-light:hover, .omni-ui .btn-secondary:hover { background: var(--omni-primary-soft); border-color: #C9CEE0; color: var(--omni-primary-hover); }
.omni-ui .btn-danger { background: var(--omni-danger); border-color: var(--omni-danger); color: #fff; }
.omni-ui .btn-success { background: var(--omni-success); border-color: var(--omni-success); color: #fff; }
.omni-ui .btn-link { background: transparent; }
.omni-ui .btn-sm { min-height: 36px; padding: 7px 12px; font-size: 12px; }
.omni-ui .btn-block { display: flex; width: 100%; }
.omni-ui :where(button):disabled, .omni-ui .btn.disabled { opacity: .55; cursor: not-allowed; }
.omni-ui .card { border: 1px solid var(--omni-border) !important; border-radius: var(--omni-radius-md) !important; background: var(--omni-surface); box-shadow: var(--omni-shadow) !important; }
.omni-ui .card-header { padding: 18px 24px; background: var(--omni-surface) !important; border-bottom: 1px solid var(--omni-border); border-radius: var(--omni-radius-md) var(--omni-radius-md) 0 0 !important; }
.omni-ui .card-body { padding: 24px; }
.omni-ui .card-header :where(h2,h3,h6) { margin: 0; font-size: 17px; color: var(--omni-text) !important; }
.omni-ui .table { color: var(--omni-text); font-size: 13px; margin-bottom: 0; }
.omni-ui .table :where(th,td) { padding: 14px 16px; vertical-align: middle; border-color: var(--omni-border); }
.omni-ui .table thead th { font-size: 12px; font-weight: 600; color: var(--omni-text-muted); background: var(--omni-surface-soft); border-bottom-width: 1px; white-space: nowrap; }
.omni-ui .table-hover tbody tr:hover { background: var(--omni-surface-soft); }
.omni-ui .table-responsive { border: 1px solid var(--omni-border); border-radius: var(--omni-radius-sm); overscroll-behavior-x: contain; }
.omni-ui .table-responsive .table { min-width: 620px; }
.omni-ui .dataTables_wrapper :where(input,select) { border-color: var(--omni-border); border-radius: var(--omni-radius-sm); }
.omni-ui .dataTables_wrapper .row { row-gap: 12px; }
.omni-ui .page-link { color: var(--omni-primary-ink); border-color: var(--omni-border); min-width: 40px; min-height: 40px; display: grid; place-items: center; }
.omni-ui .page-item.active .page-link { background: var(--omni-primary); border-color: var(--omni-primary); color: #fff; }
.omni-ui .dropdown-menu { padding: 8px; border: 1px solid var(--omni-border); border-radius: var(--omni-radius-md); box-shadow: 0 12px 36px #242A4214; font-size: 13px; max-width: calc(100vw - 24px); }
.omni-ui .dropdown-item { border-radius: 6px; padding: 10px 12px; color: var(--omni-text); white-space: normal; }
.omni-ui .dropdown-item:hover { background: var(--omni-primary-soft); color: var(--omni-primary-ink); }
.omni-ui .modal-content, .omni-ui dialog { border: 1px solid var(--omni-border); border-radius: var(--omni-radius-lg); background: var(--omni-surface); color: var(--omni-text); box-shadow: 0 20px 60px #242A4226; }
.omni-ui dialog { width: min(640px,calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 24px; overflow: auto; }
.omni-ui dialog::backdrop { background: #242A4277; backdrop-filter: blur(3px); }
.omni-ui .modal-header, .omni-ui .modal-footer { padding: 18px 24px; border-color: var(--omni-border); }
.omni-ui .modal-body { padding: 24px; }
.omni-ui .nav-tabs { border-color: var(--omni-border); gap: 8px; flex-wrap: wrap; }
.omni-ui .nav-tabs .nav-link { padding: 12px 16px; border-radius: 8px 8px 0 0; color: var(--omni-text-muted); font-size: 13px; }
.omni-ui .nav-tabs .nav-link.active { color: var(--omni-primary-ink); border-color: var(--omni-border) var(--omni-border) #fff; font-weight: 600; }
.omni-ui .alert { padding: 14px 16px; border-radius: var(--omni-radius-sm); font-size: 13px; }
.omni-ui .alert-success { color: #17633E; background: #EDF6EE; border-color: #CFE5D5; }
.omni-ui .alert-warning { color: #805618; background: #FBF4E6; border-color: #EDDFC2; }
.omni-ui .alert-danger { color: #993535; background: #FCF0EE; border-color: #EDD1CB; }
.omni-ui .alert-info { color: var(--omni-primary-ink); background: var(--omni-primary-soft); border-color: #D5D9E2; }
.omni-ui .text-primary { color: var(--omni-primary-ink) !important; }
.omni-ui .text-success { color: var(--omni-success) !important; }
.omni-ui .text-warning { color: var(--omni-warning) !important; }
.omni-ui .text-danger { color: var(--omni-danger) !important; }
.omni-ui .badge { padding: 5px 9px; border-radius: 6px; font-size: 11px; font-weight: 600; }
.omni-ui .badge-success { background: #E6F3EA; color: #17633E; }
.omni-ui .badge-warning { background: #FBF1DE; color: #805618; }
.omni-ui .badge-danger { background: #FCF0EE; color: #993535; }
.omni-ui .badge-primary, .omni-ui .badge-info { background: var(--omni-primary-soft); color: var(--omni-primary-ink); }
.omni-ui .badge-secondary { background: #EDF0EC; color: var(--omni-text-muted); }
.omni-ui hr { border-color: var(--omni-border); }
.omni-ui pre { white-space: pre-wrap; overflow-wrap: anywhere; border-radius: 8px; background: var(--omni-surface-soft); }
.omni-ui :where(fieldset,.row > *,main,section,article,form) { min-width: 0; }
.omni-ui :where(img,video,canvas,iframe) { max-width: 100%; }
.omni-ui [hidden] { display: none !important; }
.omni-ui .omni-icon { width: 20px; height: 20px; flex-shrink: 0; display: inline-block; vertical-align: middle; }
.omni-ui .omni-page-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.omni-ui .omni-page-header h1 { margin: 0 0 6px; }
.omni-ui .omni-page-header p { margin: 0; color: var(--omni-text-muted); }
.omni-ui .omni-kicker { color: var(--omni-primary-ink); font-size: 12px; font-weight: 600; margin-bottom: 8px; }
.omni-ui .omni-field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.omni-ui .omni-field-grid > label { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.omni-ui .omni-field-grid .omni-span-full { grid-column: 1/-1; }
.omni-ui .omni-section { padding: 24px; margin-bottom: 24px; background: var(--omni-surface); border: 1px solid var(--omni-border); border-radius: var(--omni-radius-md); box-shadow: var(--omni-shadow); }
.omni-ui .omni-section > h2 { margin: 0 0 20px; }
.omni-ui .omni-form-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--omni-border); }
@media(max-width:767px) {
  .omni-ui .omni-page-header { align-items: flex-start; flex-direction: column; gap: 16px; }
  .omni-ui .omni-field-grid { grid-template-columns: minmax(0,1fr); }
  .omni-ui .card-body, .omni-ui .omni-section { padding: 18px; }
  .omni-ui .form-control, .omni-ui select, .omni-ui textarea { font-size: 16px; }
}
@media(prefers-reduced-motion:reduce) { .omni-ui *, .omni-ui *::before, .omni-ui *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
.omni-ui .btn-outline-secondary,.omni-ui .btn-outline-info{color:var(--omni-primary-ink);border-color:var(--omni-border);background:var(--omni-surface)}
.omni-ui .btn-outline-secondary:hover,.omni-ui .btn-outline-info:hover{color:var(--omni-primary-ink);border-color:#C9CEE0;background:var(--omni-primary-soft)}
.omni-ui .custom-control-input:checked~.custom-control-label::before{background-color:var(--omni-primary);border-color:var(--omni-primary)}
.omni-ui .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 3px #484D751F;border-color:var(--omni-primary)}
.omni-ui :is(.cc-check,.eg-check,.hub-check,.dfy-check,.event-check){min-height:44px;padding-block:8px}

/* Review pass: predictable native fields, readable selections and uploads. */
.omni-ui select:not([multiple]):not([size]){appearance:none;-webkit-appearance:none;min-height:44px;height:44px;padding:9px 40px 9px 12px;line-height:24px;border:1px solid var(--omni-border);border-radius:8px;background-color:var(--omni-surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%236B7280' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;background-size:16px;color:var(--omni-text)}
.omni-ui select[multiple],.omni-ui select[size]:not([size="1"]){height:auto;min-height:120px;background-image:none;padding:10px 12px;line-height:1.6}
.omni-ui input[type=file]::file-selector-button{border:0;border-radius:6px;background:var(--omni-primary-soft);color:var(--omni-primary-ink);padding:7px 12px;margin:-4px 12px -4px -4px;font:500 12px var(--omni-font);cursor:pointer}
.omni-ui input[type=color]{height:44px;min-width:56px;padding:5px;border:1px solid var(--omni-border);border-radius:8px;background:var(--omni-surface)}
.omni-ui .input-group{align-items:stretch}.omni-ui .input-group-text{border-color:var(--omni-border);background:var(--omni-surface-soft);color:var(--omni-text-muted);border-radius:8px;min-height:44px}
.omni-ui .input-group>.form-control,.omni-ui .input-group>select{min-width:0;flex:1 1 0}.omni-ui .input-group>.input-group-text+.form-control,.omni-ui .input-group>.input-group-text+select{border-top-left-radius:0;border-bottom-left-radius:0}
@media(max-width:575px){.omni-ui select:not([multiple]):not([size]){font-size:16px}}

/* One two-panel authentication layout for PHP and native frontend entry points. */
.omni-ui .login-shell{min-height:100dvh;display:block;padding:0}
.omni-ui .login-panel{width:100%;max-width:none;background:var(--omni-surface);border:0;border-radius:0;overflow:visible;box-shadow:none}
.omni-ui .login-panel>.row,.omni-ui .omni-auth{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);min-height:100dvh;margin:0}
.omni-ui .login-panel>.row>div{width:100%;max-width:none;min-width:0;padding:0;margin:0;display:flex}
.omni-ui .login-brand-panel,.omni-ui .omni-auth-brand{width:100%;min-height:100dvh;padding:clamp(36px,5vw,80px);background:var(--omni-sidebar);background-image:var(--omni-sidebar-image);color:var(--agency-fg,#F8FAFC);display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:48px}
.omni-ui .login-brand-logo,.omni-ui .omni-auth-brand>img{display:block;width:240px;height:auto;max-width:100%;margin:0!important;object-fit:contain}
.omni-ui .omni-auth-brand-copy{max-width:520px;margin-block:auto}
.omni-ui .login-brand-panel .omni-auth-brand-title,.omni-ui .omni-auth-brand h2{font:600 clamp(32px,3.5vw,48px)/1.2 var(--omni-font);color:var(--agency-fg,#F8FAFC)!important;letter-spacing:-.035em;margin:0 0 24px}
.omni-ui .login-brand-panel .lead,.omni-ui .omni-auth-brand-copy>p{font:400 16px/1.8 var(--omni-font);color:var(--agency-fg,#D8DDF0);max-width:440px;margin:0}
.omni-ui .omni-auth-brand-footer{font:400 12px/1.6 var(--omni-font);color:var(--agency-fg,#D8DDF0);margin:0}
.omni-ui .login-form-panel,.omni-ui .omni-auth-panel{width:100%;min-width:0;padding:48px clamp(28px,5vw,80px);background:var(--omni-surface);display:flex;flex-direction:column;align-items:center;justify-content:center}
.omni-ui .login-form-panel>*{width:100%;max-width:440px}
.omni-ui .omni-auth-form{width:100%;max-width:440px}
.omni-ui .login-form-panel :is(h1,h2),.omni-ui .omni-auth-form>h1{font:600 30px/1.25 var(--omni-font);font-weight:600!important;letter-spacing:-.025em;color:var(--omni-text);margin:0 0 12px}
.omni-ui .login-form-panel>.mb-4,.omni-ui .omni-auth-heading{margin-bottom:28px!important}
.omni-ui .login-form-panel :is(.omni-auth-heading,.mb-4)>p,.omni-ui .omni-auth-intro{font-size:14px;line-height:1.7;color:var(--omni-text-muted);margin:0 0 28px}
.omni-ui .login-form-panel :is(.omni-auth-heading,.mb-4)>p{margin-bottom:0}
.omni-ui .login-form-panel form.user{padding:0!important;background:none;border:0!important;box-shadow:none!important}
.omni-ui .omni-auth-form fieldset{border:0;margin:0;padding:0}
.omni-ui .login-form-panel label,.omni-ui .omni-auth-form label{font-size:13px;font-weight:500!important;margin-bottom:8px;display:block}
.omni-ui .login-form-panel .form-group,.omni-ui .omni-auth-form form label{margin:0 0 20px}
.omni-ui .omni-auth-form label input{width:100%;margin-top:8px}
.omni-ui .login-form-panel .form-control{height:48px;min-height:48px;padding:12px 14px;border-radius:8px;font-size:14px}
.omni-ui .omni-auth-form .form-control{height:48px;min-height:48px}
.omni-ui .omni-auth-form .omni-field-grid{gap:0 16px}
.omni-ui .login-form-panel .form-row{margin-inline:-8px}
.omni-ui .login-form-panel .form-row>.form-group{padding-inline:8px}
.omni-ui .login-form-panel .btn-primary,.omni-ui .omni-auth-form form .btn-primary{width:100%;min-height:48px;margin-top:8px;font-size:14px}
.omni-ui .login-form-panel hr{margin:24px 0;border-color:var(--omni-border)}
.omni-ui .omni-auth-links,.omni-ui .omni-auth-form nav{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:24px;padding-top:20px;border-top:1px solid var(--omni-border);font-size:13px;text-align:center}
.omni-ui .omni-auth-form nav .btn{background:transparent;border-color:transparent;min-height:44px;font-weight:500;padding:8px 10px}
.omni-ui .omni-auth-form nav .btn:hover{background:var(--omni-primary-soft)}
.omni-ui .omni-auth-feedback:empty{display:none}
.omni-ui .omni-auth-feedback:not(:empty){padding:12px 16px;border:1px solid var(--omni-border);border-radius:8px;background:var(--omni-surface-soft);font-size:13px;line-height:1.6;margin:20px 0}
@media(max-width:991px) and (min-width:768px){.omni-ui .login-brand-panel,.omni-ui .omni-auth-brand{padding:36px 28px}.omni-ui .login-form-panel,.omni-ui .omni-auth-panel{padding:40px 28px}.omni-ui .login-brand-panel .omni-auth-brand-title,.omni-ui .omni-auth-brand h2{font-size:32px}}
@media(max-width:767px){
  .omni-ui .login-panel>.row,.omni-ui .omni-auth{grid-template-columns:minmax(0,1fr)}
  .omni-ui .login-brand-panel,.omni-ui .omni-auth-brand{min-height:0;padding:28px 24px!important;gap:24px}
  .omni-ui .login-brand-logo,.omni-ui .omni-auth-brand>img{width:200px}
  .omni-ui .login-brand-panel .omni-auth-brand-title,.omni-ui .omni-auth-brand h2{font-size:28px;margin-bottom:12px}
  .omni-ui .login-brand-panel .lead,.omni-ui .omni-auth-brand-copy>p{font-size:14px;line-height:1.7}
  .omni-ui .omni-auth-brand-footer{font-size:11px}
  .omni-ui .login-form-panel,.omni-ui .omni-auth-panel{padding:36px 24px!important}
  .omni-ui .login-form-panel :is(h1,h2),.omni-ui .omni-auth-form>h1{font-size:26px}
  .omni-ui .login-form-panel .form-control,.omni-ui .omni-auth-form .form-control{font-size:16px}
}

/* Field states and dense management controls keep the same visual hierarchy. */
.omni-ui :is(input,textarea)[readonly]{background-color:var(--omni-surface-soft)}
.omni-ui :is(input,select,textarea):disabled{color:var(--omni-text-muted);cursor:not-allowed;opacity:1}
.omni-ui :is(input,select,textarea):focus-visible{outline:0!important;outline-offset:0;border-color:var(--omni-primary);box-shadow:0 0 0 3px rgba(72,77,117,.14)}
.omni-ui :is(input,select,textarea):is(.is-invalid,[aria-invalid=true],:user-invalid){border-color:var(--omni-danger)}
.omni-ui .invalid-feedback{font-size:12px;line-height:1.6;margin-top:6px;color:var(--omni-danger)}
.omni-ui .form-text{margin-top:6px}
.omni-ui .dataTables_wrapper :is(.dataTables_length,.dataTables_filter) label{font-size:13px;font-weight:500}
.omni-ui .table thead :is(th,td){text-transform:none!important;letter-spacing:0!important;font-weight:600!important;font-size:12px!important;color:var(--omni-text-muted)!important;background:var(--omni-surface-soft)!important}
.omni-ui .table td a:not(.btn){font-weight:500;color:var(--omni-primary-ink)}
.omni-ui :is(.dataTables_info,.dataTables_empty){font-size:13px;font-weight:400!important;color:var(--omni-text-muted)}
.omni-ui .pagination{gap:4px;flex-wrap:wrap}
