:root{color-scheme:light;--fy-green: #308040;--fy-lime: #c0d010;--fy-dark: #1a3020;--fy-dark-2: #1c3824;--fy-black: #111111;--fy-gray: #666666;--fy-gray-dark: #333333;--fy-lgray: #f2f2f2;--fy-border: #e2e5e2;--fy-white: #ffffff;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;font-family:Montserrat,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--fy-lgray);color:var(--fy-black);font-family:Montserrat,system-ui,sans-serif}button{font-family:inherit}a{color:inherit}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.fy-shell{display:flex;min-height:100vh}.fy-sidebar{width:240px;flex-shrink:0;background:var(--fy-dark);color:var(--fy-white);display:flex;flex-direction:column;padding:20px 14px}.fy-sidebar__brand{font-weight:800;font-size:18px;letter-spacing:.02em;margin-bottom:4px}.fy-sidebar__brand span{color:var(--fy-lime)}.fy-sidebar__tag{font-size:10.5px;color:var(--fy-lime);font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:28px}.fy-nav{display:flex;flex-direction:column;gap:4px;flex:1}.fy-nav__link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);text-decoration:none;color:#d7e0d9;font-size:14px;font-weight:500;transition:background .15s ease}.fy-nav__link:hover{background:#c0d0101a}.fy-nav__link.active{background:var(--fy-green);color:var(--fy-white);box-shadow:0 0 0 1px #c0d01059}.fy-sidebar__footer{border-top:1px solid rgba(255,255,255,.1);padding-top:14px;font-size:12px;color:#9db09f}.fy-main{flex:1;display:flex;flex-direction:column;min-width:0}.fy-topbar{height:60px;flex-shrink:0;background:var(--fy-white);border-bottom:1px solid var(--fy-border);display:flex;align-items:center;justify-content:space-between;padding:0 24px}.fy-topbar__title{font-weight:700;font-size:16px}.fy-content{flex:1;padding:28px;overflow-y:auto}.fy-card{background:var(--fy-white);border:1px solid var(--fy-border);border-radius:var(--radius-lg);padding:20px}.fy-app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.fy-app-card{display:block;background:var(--fy-white);border:1px solid var(--fy-border);border-radius:var(--radius-lg);padding:20px;text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease;position:relative;overflow:hidden}.fy-app-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--fy-green),var(--fy-lime));transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.fy-app-card:not(.disabled):hover{transform:translateY(-2px);box-shadow:0 8px 20px #1a30201a}.fy-app-card:not(.disabled):hover:before{transform:scaleX(1)}.fy-app-card.disabled{opacity:.55;cursor:not-allowed}.fy-app-card__icon{width:40px;height:40px;border-radius:var(--radius-sm);background:var(--fy-green);color:var(--fy-white);display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:12px}.fy-app-card__tag{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fy-green);margin-bottom:4px}.fy-app-card__title{font-weight:700;font-size:15px;margin-bottom:6px}.fy-app-card__desc{font-size:12.5px;color:var(--fy-gray);line-height:1.5}.fy-app-card__badge{position:absolute;top:14px;right:14px;font-size:10px;font-weight:700;background:var(--fy-lime);color:var(--fy-black);padding:3px 8px;border-radius:999px}.fy-btn{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:var(--radius-md);padding:9px 16px;font-size:13.5px;font-weight:600;cursor:pointer;transition:filter .15s ease;position:relative;overflow:hidden}.fy-btn:hover{filter:brightness(.95)}.fy-btn--primary,.fy-btn--lime{position:relative}.fy-btn--primary:after,.fy-btn--lime:after{content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.55),transparent);transform:skew(-20deg);transition:left .6s ease;pointer-events:none}.fy-btn--primary:hover:after,.fy-btn--lime:hover:after{left:130%}.fy-btn--primary{background:var(--fy-green);color:var(--fy-white)}.fy-btn--outline{background:transparent;color:var(--fy-gray-dark);border:1px solid var(--fy-border)}.fy-btn--lime{background:var(--fy-lime);color:var(--fy-black)}.fy-table{width:100%;border-collapse:collapse;font-size:13.5px}.fy-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--fy-gray);padding:8px 12px;border-bottom:1px solid var(--fy-border)}.fy-table td{padding:10px 12px;border-bottom:1px solid var(--fy-border)}.fy-table td{transition:background .15s ease}.fy-table tr:hover td{background:var(--fy-lgray)}.fy-badge{display:inline-block;font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px}.fy-badge--admin{background:var(--fy-black);color:var(--fy-white)}.fy-badge--employee{background:var(--fy-green);color:var(--fy-white)}.fy-badge--customer{background:var(--fy-lgray);color:var(--fy-gray-dark);border:1px solid var(--fy-border)}.fy-badge--active{background:#3080401f;color:var(--fy-green)}.fy-badge--inactive{background:#6666661f;color:var(--fy-gray)}.fy-field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.fy-field label{font-size:12px;font-weight:600;color:var(--fy-gray-dark)}.fy-field input,.fy-field select,.fy-field textarea{border:1px solid var(--fy-border);border-radius:var(--radius-sm);padding:9px 11px;font-size:13.5px;font-family:inherit}.fy-field input:focus,.fy-field select:focus,.fy-field textarea:focus{outline:2px solid var(--fy-lime);outline-offset:1px}.fy-perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin:10px 0 18px}.fy-perm-item{display:flex;align-items:flex-start;gap:9px;border:1px solid var(--fy-border);border-radius:var(--radius-md);padding:10px 12px;cursor:pointer;font-size:12.5px;transition:border-color .15s ease,box-shadow .15s ease}.fy-perm-item:hover{border-color:var(--fy-green);box-shadow:0 0 0 1px #30804033}.fy-perm-item input{margin-top:2px}.fy-perm-item strong{display:block;font-size:13px}.fy-perm-item span{color:var(--fy-gray);font-size:11.5px}.fy-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#11111173;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;z-index:50;animation:fyOverlayIn .15s ease}.fy-modal{background:var(--fy-white);border-radius:var(--radius-lg);padding:24px;width:100%;max-width:640px;animation:fyModalIn .2s cubic-bezier(.2,.7,.3,1)}@keyframes fyOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes fyModalIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.fy-modal__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.fy-modal__header h2{margin:0;font-size:18px}.fy-login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--fy-dark);background-image:linear-gradient(135deg,transparent 60%,var(--fy-green) 60%,var(--fy-green) 68%,var(--fy-lime) 68%,var(--fy-lime) 100%);padding:20px;position:relative;overflow:hidden}.fy-login-page:before{content:"";position:absolute;top:-15%;left:-10%;width:520px;height:520px;background:radial-gradient(circle,rgba(192,208,16,.16) 0%,rgba(48,128,64,.12) 45%,transparent 72%);filter:blur(10px);animation:fyHeroGlow 14s ease-in-out infinite;pointer-events:none}@keyframes fyHeroGlow{0%,to{transform:translate(0) scale(1)}50%{transform:translate(30px,24px) scale(1.12)}}.fy-login-card{background:var(--fy-white);border-radius:var(--radius-lg);padding:32px;width:100%;max-width:440px;text-align:center;overflow:hidden;position:relative;z-index:1}.fy-login-card .cl-formButtonPrimary{position:relative;overflow:hidden}.fy-login-card .cl-formButtonPrimary:after{content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.5),transparent);transform:skew(-20deg);transition:left .6s ease;pointer-events:none}.fy-login-card .cl-formButtonPrimary:hover:after{left:130%}.fy-login-card .cl-rootBox,.fy-login-card .cl-cardBox,.fy-login-card .cl-card{width:100%!important;max-width:100%!important}.fy-login-card .cl-socialButtons{flex-wrap:wrap!important}.fy-login-card .cl-socialButtonsBlockButton{min-width:0!important}.fy-login-card__brand{font-weight:800;font-size:22px;margin-bottom:4px}.fy-login-card__brand span{color:var(--fy-green)}.fy-login-card__tag{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fy-green);margin-bottom:24px}.fy-empty{color:var(--fy-gray);font-size:13.5px;padding:24px;text-align:center}
