:root{--fx-navy:#102a43;--fx-navy-2:#163b61;--fx-blue:#3157c8;--fx-blue-hover:#2748a8;--fx-blue-soft:#eef2ff;--fx-purple:#6f52b5;--fx-purple-hover:#5d429e;--fx-purple-soft:#f1edff;--fx-green:#17854a;--fx-green-hover:#126c3c;--fx-green-soft:#edf7f2;--fx-red:#c43d49;--fx-red-soft:#fff4f5;--fx-amber:#a15c00;--fx-amber-soft:#fff7e8;--fx-bg:#f4f6f9;--fx-surface:#fff;--fx-surface-2:#f8fafc;--fx-text:#18243a;--fx-text-2:#344054;--fx-muted:#6f7c90;--fx-muted-2:#8c96a5;--fx-border:#d8dee8;--fx-border-soft:#e8ecf2;--fx-shadow-sm:0 3px 14px #1018280f;--fx-shadow:0 10px 28px #1f2f4d12;--fx-shadow-lg:0 28px 75px #13274324;--fx-radius-sm:9px;--fx-radius:12px;--fx-radius-lg:18px;--fx-radius-xl:22px;--fx-header-h:76px;--fx-sidebar-w:264px;--fx-content-max:1560px;--fx-page-pad:clamp(16px, 2.2vw, 34px);--fx-transition:.15s ease}*{box-sizing:border-box}html,body{min-height:100%}html{background:var(--fx-bg)}body{background:var(--fx-bg);color:var(--fx-text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif}button,input,select,textarea{font:inherit}a{color:inherit}::selection{background:#3157c829}.fx-app{background:var(--fx-bg);min-height:100vh}.fx-sidebar{z-index:1200;width:var(--fx-sidebar-w);color:#fff;background:radial-gradient(circle at 15% 2%, #4775dd2e, transparent 28%), linear-gradient(180deg, var(--fx-navy) 0%, #0d2338 100%);border-right:1px solid #ffffff0f;flex-direction:column;transition:transform .18s;display:flex;position:fixed;inset:0 auto 0 0;overflow:hidden}.fx-sidebar-brand{min-height:var(--fx-header-h);border-bottom:1px solid #ffffff14;align-items:center;gap:12px;padding:0 20px;display:flex}.fx-brand-mark{width:42px;height:42px;color:var(--fx-navy);letter-spacing:-.04em;background:#fff;border-radius:13px;flex:0 0 42px;place-items:center;font-size:22px;font-weight:900;display:grid;box-shadow:0 8px 20px #00000024}.fx-brand-copy{min-width:0;line-height:1.05}.fx-brand-title{letter-spacing:.015em;font-size:17px;font-weight:850}.fx-brand-subtitle{color:#9eb0c4;letter-spacing:.1em;text-transform:uppercase;margin-top:5px;font-size:10px;font-weight:750}.fx-sidebar-content{scrollbar-width:thin;scrollbar-color:#ffffff2e transparent;flex:auto;padding:18px 12px 22px;overflow-y:auto}.fx-nav-section{color:#7f94a9;letter-spacing:.12em;text-transform:uppercase;margin:18px 10px 7px;font-size:9px;font-weight:850}.fx-nav-section:first-child{margin-top:2px}.fx-nav{gap:4px;display:grid}.fx-nav-link{color:#afbdcb;min-height:43px;transition:background var(--fx-transition), color var(--fx-transition), transform var(--fx-transition);border-radius:11px;align-items:center;gap:12px;padding:0 12px;font-size:13px;font-weight:680;text-decoration:none;display:flex}.fx-nav-link svg{stroke-width:1.9px;flex:0 0 18px;width:18px;height:18px}.fx-nav-link:hover{color:#fff;background:#fff1}.fx-nav-link.is-active{color:#fff;background:linear-gradient(90deg,#3157c8b8,#4775dd75);box-shadow:inset 3px 0 #9bb7ff}.fx-sidebar-footer{border-top:1px solid #ffffff14;padding:15px 18px 18px}.fx-sidebar-business{color:#e9f0f7;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:800;overflow:hidden}.fx-sidebar-meta{color:#7f94a9;margin-top:4px;font-size:10px}.fx-app-body{min-height:100vh;margin-left:var(--fx-sidebar-w)}.fx-header{z-index:1050;min-height:var(--fx-header-h);padding:0 var(--fx-page-pad);border-bottom:1px solid var(--fx-border-soft);box-shadow:var(--fx-shadow-sm);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff5;justify-content:space-between;align-items:center;gap:18px;display:flex;position:sticky;top:0}.fx-header-left,.fx-header-right{align-items:center;gap:12px;min-width:0;display:flex}.fx-mobile-menu{border:1px solid var(--fx-border);width:40px;height:40px;color:var(--fx-text-2);cursor:pointer;background:#fff;border-radius:11px;display:none}.fx-header-section-icon{width:38px;height:38px;color:var(--fx-blue);background:var(--fx-blue-soft);border-radius:11px;flex:0 0 38px;place-items:center;display:grid}.fx-header-section-icon svg{width:18px;height:18px}.fx-header-section-label{color:var(--fx-muted-2);letter-spacing:.09em;text-transform:uppercase;font-size:10px;font-weight:800}.fx-header-section-title{color:var(--fx-text);margin-top:2px;font-size:14px;font-weight:800}.fx-header-icon-btn{border:1px solid var(--fx-border);color:#526076;cursor:pointer;width:40px;height:40px;transition:var(--fx-transition);background:#fff;border-radius:11px;place-items:center;display:grid;position:relative}.fx-header-icon-btn:hover{color:var(--fx-blue);background:#f5f7ff;border-color:#cbd6f4}.fx-header-icon-btn svg{width:18px;height:18px}.fx-user-box{border:1px solid var(--fx-border-soft);background:#fff;border-radius:13px;align-items:center;gap:10px;min-height:46px;padding:5px 7px 5px 6px;display:flex}.fx-user-avatar{width:34px;height:34px;color:var(--fx-blue);background:var(--fx-blue-soft);text-transform:uppercase;border-radius:10px;place-items:center;font-size:11px;font-weight:850;display:grid}.fx-user-copy{min-width:86px;line-height:1.15}.fx-user-name{max-width:150px;color:var(--fx-text-2);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:800;overflow:hidden}.fx-user-role{color:var(--fx-muted-2);text-transform:capitalize;margin-top:3px;font-size:9px;font-weight:700}.fx-logout-btn{color:#8a94a3;cursor:pointer;width:32px;height:32px;transition:var(--fx-transition);background:0 0;border:0;border-radius:9px;place-items:center;display:grid}.fx-logout-btn:hover{color:var(--fx-red);background:var(--fx-red-soft)}.fx-logout-btn svg{width:16px;height:16px}.fx-main{min-width:0}.fx-content{width:100%;max-width:var(--fx-content-max);padding:30px var(--fx-page-pad) 52px;margin:0 auto}.fx-sidebar-overlay{display:none}.fx-page-header{justify-content:space-between;align-items:flex-end;gap:22px;margin-bottom:22px;display:flex}.fx-page-eyebrow{color:#8994a5;letter-spacing:.1em;text-transform:uppercase;margin-bottom:5px;font-size:10px;font-weight:850;display:block}.fx-page-title{color:#17233a;letter-spacing:-.035em;margin:0;font-size:clamp(27px,3vw,34px);font-weight:780;line-height:1.12}.fx-page-subtitle{max-width:760px;color:var(--fx-muted);margin:7px 0 0;font-size:13px;line-height:1.55}.fx-page-actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.fx-btn{cursor:pointer;min-height:40px;transition:background-color var(--fx-transition), border-color var(--fx-transition), color var(--fx-transition), box-shadow var(--fx-transition);border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:12px;font-weight:800;line-height:1.1;text-decoration:none;display:inline-flex}.fx-btn svg{width:16px;height:16px}.fx-btn-primary{color:#fff;background:var(--fx-purple);border-color:var(--fx-purple)}.fx-btn-primary:hover{background:var(--fx-purple-hover);border-color:var(--fx-purple-hover)}.fx-btn-secondary{color:var(--fx-text-2);border-color:var(--fx-border);background:#fff}.fx-btn-secondary:hover{color:#1f2937;background:var(--fx-surface-2);border-color:#c6ceda}.fx-btn-blue{color:#fff;background:var(--fx-blue);border-color:var(--fx-blue)}.fx-btn-blue:hover{background:var(--fx-blue-hover);border-color:var(--fx-blue-hover)}.fx-btn-success{color:#fff;background:var(--fx-green);border-color:var(--fx-green)}.fx-btn-danger{color:var(--fx-red);background:var(--fx-red-soft);border-color:#efc2c7}.fx-card{border:1px solid var(--fx-border-soft);border-radius:var(--fx-radius-lg);background:var(--fx-surface);box-shadow:var(--fx-shadow);overflow:hidden}.fx-card-header{border-bottom:1px solid var(--fx-border-soft);justify-content:space-between;align-items:center;gap:14px;min-height:68px;padding:15px 18px;display:flex}.fx-card-title-wrap{align-items:center;gap:11px;min-width:0;display:flex}.fx-card-icon{width:38px;height:38px;color:var(--fx-blue);background:var(--fx-blue-soft);border-radius:11px;flex:0 0 38px;place-items:center;display:grid}.fx-card-icon.purple{color:var(--fx-purple);background:var(--fx-purple-soft)}.fx-card-icon.green{color:var(--fx-green);background:var(--fx-green-soft)}.fx-card-icon.amber{color:var(--fx-amber);background:var(--fx-amber-soft)}.fx-card-icon svg{width:17px;height:17px}.fx-card-kicker{color:#8a96a8;letter-spacing:.08em;text-transform:uppercase;margin-bottom:2px;font-size:9px;font-weight:850;display:block}.fx-card-title{color:#1e2b42;margin:0;font-size:15px;font-weight:780;line-height:1.2}.fx-card-body{padding:18px}.fx-card-flush{padding:0}.fx-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.fx-stat-card{border:1px solid var(--fx-border-soft);background:#fff;border-radius:16px;flex-direction:column;justify-content:space-between;min-height:128px;padding:17px 18px;display:flex;box-shadow:0 7px 20px #1f2f4d0b}.fx-stat-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.fx-stat-label{color:#727f91;font-size:11px;font-weight:750}.fx-stat-icon{width:34px;height:34px;color:var(--fx-blue);background:var(--fx-blue-soft);border-radius:10px;place-items:center;display:grid}.fx-stat-icon.purple{color:var(--fx-purple);background:var(--fx-purple-soft)}.fx-stat-icon.green{color:var(--fx-green);background:var(--fx-green-soft)}.fx-stat-icon.amber{color:var(--fx-amber);background:var(--fx-amber-soft)}.fx-stat-icon svg{width:16px;height:16px}.fx-stat-value{color:#1a2940;letter-spacing:-.045em;margin-top:11px;font-size:29px;font-weight:850;line-height:1}.fx-stat-foot{color:#98a1ae;margin-top:7px;font-size:10px}.fx-grid{gap:18px;display:grid}.fx-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.fx-grid-main{grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr)}.fx-list{display:grid}.fx-list-row{min-height:62px;transition:background var(--fx-transition);border-bottom:1px solid #edf0f4;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:10px 18px;display:grid}.fx-list-row:last-child{border-bottom:0}.fx-list-row:hover{background:#fbfcfe}.fx-list-main{min-width:0}.fx-list-title{color:#27354c;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:780;overflow:hidden}.fx-list-meta{color:#7e8a9b;margin-top:4px;font-size:10px}.fx-table-wrap{width:100%;overflow-x:auto}.fx-table{border-collapse:collapse;width:100%;font-size:12px}.fx-table th,.fx-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #edf0f4;padding:12px 14px}.fx-table th{color:#768397;letter-spacing:.07em;text-transform:uppercase;background:#fafbfd;font-size:9px;font-weight:850}.fx-table tbody tr:hover{background:#fbfcfe}.fx-badge{color:#5e6c80;letter-spacing:.025em;background:#eef2f6;border-radius:999px;justify-content:center;align-items:center;min-height:24px;padding:4px 8px;font-size:9px;font-weight:850;display:inline-flex}.fx-badge-blue{color:var(--fx-blue);background:var(--fx-blue-soft)}.fx-badge-purple{color:var(--fx-purple);background:var(--fx-purple-soft)}.fx-badge-green{color:var(--fx-green);background:var(--fx-green-soft)}.fx-badge-amber{color:var(--fx-amber);background:var(--fx-amber-soft)}.fx-badge-red{color:var(--fx-red);background:var(--fx-red-soft)}.fx-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.fx-field{gap:7px;display:grid}.fx-field-label{color:#34445c;font-size:11px;font-weight:780}.fx-input,.fx-select,.fx-textarea{color:#17253a;width:100%;min-height:44px;transition:border-color var(--fx-transition), box-shadow var(--fx-transition), background var(--fx-transition);background:#fff;border:1px solid #dce3ec;border-radius:11px;outline:none;padding:10px 12px;font-size:12px}.fx-textarea{resize:vertical;min-height:105px}.fx-input:hover,.fx-select:hover,.fx-textarea:hover{border-color:#cbd6e4}.fx-input:focus,.fx-select:focus,.fx-textarea:focus{border-color:#7898e6;box-shadow:0 0 0 4px #3157c81a}.fx-empty{text-align:center;place-items:center;min-height:180px;padding:30px;display:grid}.fx-empty-icon{width:48px;height:48px;color:var(--fx-blue);background:var(--fx-blue-soft);border-radius:14px;place-items:center;margin:0 auto 11px;display:grid}.fx-empty-icon svg{width:20px;height:20px}.fx-empty-title{color:#44536a;font-size:14px;font-weight:800}.fx-empty-text{color:#8792a3;max-width:480px;margin:6px auto 0;font-size:11px;line-height:1.6}.fx-muted{color:var(--fx-muted)}.fx-text-right{text-align:right}.fx-login-page{background:radial-gradient(circle at 10% 10%,#3157c814,#0000 26%),radial-gradient(circle at 92% 90%,#163b6112,#0000 24%),#f3f6fa;place-items:center;min-height:100dvh;padding:32px;display:grid}.fx-login-shell{width:min(1080px,100%);min-height:620px;box-shadow:var(--fx-shadow-lg);background:#fff;border:1px solid #d8e1eceb;border-radius:28px;grid-template-columns:minmax(0,1.05fr) minmax(390px,.95fr);display:grid;overflow:hidden}.fx-login-brand{color:#fff;background:radial-gradient(circle at 92% 16%,#6f52b53d,#0000 25%),linear-gradient(145deg,#102a43fc,#163b61fa 58%,#3157c8f0);flex-direction:column;padding:42px 44px 38px;display:flex;position:relative;overflow:hidden}.fx-login-brand-top{z-index:2;justify-content:space-between;align-items:center;gap:18px;display:flex;position:relative}.fx-login-logo-box{background:#fffffffa;border:1px solid #ffffff2e;border-radius:15px;align-items:center;gap:11px;padding:9px 13px 9px 9px;display:inline-flex;box-shadow:0 10px 25px #0000001f}.fx-login-logo-box .fx-brand-mark{color:#fff;background:var(--fx-navy);width:39px;height:39px;box-shadow:none;border-radius:11px;flex-basis:39px;font-size:20px}.fx-login-logo-text strong{color:var(--fx-navy);letter-spacing:.02em;font-size:15px;font-weight:900;display:block}.fx-login-logo-text span{color:#75859a;letter-spacing:.1em;text-transform:uppercase;margin-top:2px;font-size:8px;font-weight:850;display:block}.fx-login-badge{color:#ffffffd1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff12;border:1px solid #ffffff2e;border-radius:999px;padding:7px 10px;font-size:9px;font-weight:800}.fx-login-brand-copy{z-index:2;max-width:455px;margin:auto 0;padding:50px 0 38px;position:relative}.fx-login-eyebrow{color:#bcd2ff;letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px;font-size:9px;font-weight:850;display:block}.fx-login-brand-copy h1{letter-spacing:-.045em;max-width:440px;margin:0;font-size:42px;font-weight:760;line-height:1.08}.fx-login-brand-copy p{color:#ffffffb3;max-width:420px;margin:20px 0 0;font-size:13px;line-height:1.68}.fx-login-status{z-index:2;color:#ffffffa1;align-items:center;gap:9px;font-size:9px;font-weight:700;display:flex;position:relative}.fx-login-status-dot{background:#67d4a0;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #67d4a01f}.fx-login-form-panel{background:linear-gradient(#fff 0%,#fcfdff 100%);place-items:center;padding:52px 58px;display:grid}.fx-login-form-wrap{width:min(390px,100%)}.fx-login-form-kicker{color:var(--fx-blue);letter-spacing:.13em;text-transform:uppercase;margin-bottom:8px;font-size:9px;font-weight:850;display:block}.fx-login-form-head{margin-bottom:28px}.fx-login-form-head h2{color:#17253a;letter-spacing:-.04em;margin:0;font-size:34px;font-weight:790;line-height:1.12}.fx-login-form-head p{color:#718096;margin:10px 0 0;font-size:12px;line-height:1.5}.fx-login-form{gap:17px;display:grid}.fx-login-field{gap:7px;display:grid}.fx-login-field label{color:#34445c;font-size:10px;font-weight:800}.fx-login-control{position:relative}.fx-login-control-icon{color:#8190a4;pointer-events:none;width:17px;height:17px;position:absolute;top:50%;left:15px;transform:translateY(-50%)}.fx-login-input{color:#17253a;width:100%;height:50px;transition:var(--fx-transition);background:#fff;border:1px solid #dce3ec;border-radius:13px;outline:none;padding:0 15px 0 43px;font-size:12px}.fx-login-input:hover{border-color:#cbd6e4}.fx-login-input:focus{border-color:#7898e6;box-shadow:0 0 0 4px #3157c81a}.fx-login-error{color:#a43f3f;background:#fff5f5;border:1px solid #f2cccc;border-radius:11px;padding:11px 12px;font-size:10px;font-weight:700;line-height:1.5}.fx-login-submit{color:#fff;background:linear-gradient(135deg, var(--fx-blue), #4775dd);cursor:pointer;width:100%;min-height:51px;transition:transform var(--fx-transition), box-shadow var(--fx-transition), filter var(--fx-transition);border:0;border-radius:13px;justify-content:center;align-items:center;gap:9px;margin-top:2px;font-size:12px;font-weight:850;display:flex;box-shadow:0 10px 22px #3157c838}.fx-login-submit:hover{transform:translateY(-1px);box-shadow:0 13px 27px #3157c845}.fx-login-submit:disabled{cursor:wait;opacity:.7;transform:none}.fx-login-secure{color:#92a0b2;border-top:1px solid #edf1f5;justify-content:center;align-items:center;gap:7px;margin-top:24px;padding-top:19px;font-size:9px;font-weight:700;display:flex}@media (max-width:1100px){.fx-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fx-grid-main{grid-template-columns:1fr}}@media (max-width:900px){.fx-sidebar{transform:translate(-100%)}.fx-sidebar.is-open{transform:translate(0);box-shadow:22px 0 50px #0918273d}.fx-sidebar-overlay{z-index:1150;opacity:0;pointer-events:none;background:#0c19286b;border:0;transition:opacity .18s;display:block;position:fixed;inset:0}.fx-sidebar-overlay.is-open{opacity:1;pointer-events:auto}.fx-app-body{margin-left:0}.fx-mobile-menu{place-items:center;display:grid}.fx-login-page{padding:20px}.fx-login-shell{grid-template-columns:1fr;max-width:540px;min-height:auto}.fx-login-brand{display:none}.fx-login-form-panel{padding:44px 42px}}@media (max-width:620px){.fx-header{padding:0 14px}.fx-header-section-label{display:none}.fx-header-section-title{white-space:nowrap;text-overflow:ellipsis;max-width:130px;overflow:hidden}.fx-header-icon-btn,.fx-user-copy{display:none}.fx-user-box{padding-right:5px}.fx-content{padding:22px 14px 38px}.fx-page-header{flex-direction:column;align-items:flex-start}.fx-page-actions{width:100%}.fx-page-actions .fx-btn{flex:auto}.fx-stat-grid{grid-template-columns:1fr 1fr;gap:10px}.fx-stat-card{min-height:116px;padding:14px}.fx-stat-value{font-size:25px}.fx-grid-2,.fx-form-grid{grid-template-columns:1fr}.fx-login-page{background:#fff;padding:0;display:block}.fx-login-shell{min-height:100dvh;box-shadow:none;border:0;border-radius:0}.fx-login-form-panel{align-items:center;padding:32px 23px;display:flex}.fx-login-form-wrap{margin:auto}.fx-login-form-head h2{font-size:31px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
