*{margin:0;padding:0;box-sizing:border-box}:root{font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{min-height:100vh;margin:0;padding:0}body{background:#0f0f1a;color:#fff;overflow-x:hidden}@media screen and (max-width:768px){html,body,#root{max-width:100vw!important;overflow-x:hidden!important}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#ffffff0d}::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}::selection{background:#667eea4d;color:#fff}:focus-visible{outline:2px solid #667eea;outline-offset:2px}input,select,textarea{font-family:inherit;font-size:inherit}button{font-family:inherit;cursor:pointer}a{color:#667eea;text-decoration:none}a:hover{text-decoration:underline}.authenticated-layout{display:flex;height:100vh;overflow:hidden}.main-content{flex:1;margin-left:220px;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);height:100vh;display:flex;flex-direction:column;overflow:hidden;position:relative}.mobile-menu-btn{display:none;position:fixed;top:12px;left:12px;z-index:1001;background:#1a1a2ef2;border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:12px;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s ease;min-width:48px;min-height:48px;align-items:center;justify-content:center}.mobile-menu-btn:hover{background:#667eea4d;border-color:#667eea80}.mobile-menu-btn:active{transform:scale(.95)}.mobile-menu-btn svg{width:24px;height:24px}@media(max-width:768px){.main-content{margin-left:0;padding-top:70px}.mobile-menu-btn{display:flex}}@media(max-width:480px){.main-content{padding-top:65px}.mobile-menu-btn{top:10px;left:10px;padding:10px;min-width:44px;min-height:44px}.mobile-menu-btn svg{width:22px;height:22px}}@supports (padding-top: env(safe-area-inset-top)){.main-content{padding-top:calc(env(safe-area-inset-top) + 10px)}@media(max-width:768px){.main-content{padding-top:calc(70px + env(safe-area-inset-top))}}}@media(max-width:768px){input[type=text],input[type=password],input[type=email],input[type=number],input[type=tel],input[type=url],input[type=search],input[type=date],input[type=datetime-local],select,textarea{font-size:16px!important}}.config-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);padding:20px}.config-card{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:40px;width:100%;max-width:450px;box-shadow:0 25px 50px -12px #00000080;border:1px solid rgba(255,255,255,.1)}.config-header{text-align:center;margin-bottom:30px}.logo-icon{width:60px;height:60px;background:linear-gradient(135deg,#00d4ff,#00a8cc);border-radius:15px;display:flex;align-items:center;justify-content:center;margin:0 auto 15px}.logo-icon svg{width:35px;height:35px;color:#fff}.config-header h1{color:#fff;font-size:1.8rem;margin:0 0 5px;font-weight:600}.config-header p{color:#fff9;margin:0;font-size:.95rem}.config-form{display:flex;flex-direction:column;gap:20px}.input-icon{width:18px;height:18px;color:#00d4ff}.form-group input:focus{outline:none;border-color:#00d4ff;background:#ffffff1f;box-shadow:0 0 0 3px #00d4ff1a}.form-group small{color:#ffffff80;font-size:.8rem}.message.success{background:#2ed57326;border:1px solid rgba(46,213,115,.3);color:#2ed573}.save-button{background:linear-gradient(135deg,#00d4ff,#00a8cc);border:none;border-radius:10px;padding:14px 24px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .3s ease;margin-top:10px}.save-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #00d4ff4d}.save-button:disabled{opacity:.7;cursor:not-allowed}.save-button svg{width:20px;height:20px}@media(max-width:480px){.config-container{padding:30px 15px 15px;align-items:flex-start}.config-card{padding:25px 20px;border-radius:15px}.config-header{margin-bottom:25px}.logo-icon{width:50px;height:50px;border-radius:12px}.logo-icon svg{width:28px;height:28px}.config-header h1{font-size:1.5rem}.config-header p{font-size:.85rem}.config-form{gap:16px}.form-group label{font-size:.85rem}.input-icon{width:16px;height:16px}.form-group input{padding:12px 14px;font-size:16px;border-radius:8px}.form-group small{font-size:.75rem}.message{padding:10px 14px;font-size:.85rem;border-radius:8px}.message svg{width:18px;height:18px}.save-button{padding:12px 20px;font-size:.95rem;border-radius:8px}.save-button svg{width:18px;height:18px}}@media(max-width:600px)and (min-width:481px){.config-container{padding:20px}.config-card{padding:30px 25px}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);padding:20px}.login-card{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:40px;width:100%;max-width:420px;box-shadow:0 25px 50px -12px #00000080;border:1px solid rgba(255,255,255,.1)}.login-header{text-align:center;margin-bottom:30px}.login-header .logo-icon{width:70px;height:70px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:18px;display:flex;align-items:center;justify-content:center;margin:0 auto 15px}.login-header .logo-icon svg{width:40px;height:40px;color:#fff}.login-header h1{color:#fff;font-size:1.8rem;margin:0 0 5px;font-weight:600}.login-header p{color:#fff9;margin:0;font-size:.95rem}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{color:#ffffffe6;font-size:.9rem;font-weight:500;display:flex;align-items:center;gap:8px}.input-icon{width:18px;height:18px;color:#667eea}.form-group input{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:14px 16px;color:#fff;font-size:1rem;transition:all .3s ease}.form-group input:focus{outline:none;border-color:#667eea;background:#ffffff1f;box-shadow:0 0 0 3px #667eea1a}.form-group input::placeholder{color:#fff6}.form-group input:disabled{opacity:.6;cursor:not-allowed}.password-input{position:relative;display:flex;align-items:center}.password-input input{width:100%;padding-right:50px}.toggle-password{position:absolute;right:12px;background:none;border:none;cursor:pointer;padding:5px;display:flex;align-items:center;justify-content:center}.toggle-password svg{width:22px;height:22px;color:#ffffff80;transition:color .3s ease}.toggle-password:hover svg{color:#fffc}.remember-row{display:flex;align-items:center}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;color:#fffc;font-size:.9rem;-webkit-user-select:none;user-select:none}.checkbox-label input{display:none}.checkmark{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:5px;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.checkbox-label input:checked+.checkmark{background:linear-gradient(135deg,#667eea,#764ba2);border-color:transparent}.checkbox-label input:checked+.checkmark:after{content:"";width:6px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);margin-bottom:2px}.message{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;font-size:.9rem}.message svg{width:20px;height:20px;flex-shrink:0}.message.error{background:#ff475726;border:1px solid rgba(255,71,87,.3);color:#ff6b6b}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;padding:14px 24px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .3s ease;margin-top:10px}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.login-button:disabled{opacity:.7;cursor:not-allowed}.login-button svg{width:20px;height:20px}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.config-button{background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:12px 20px;color:#ffffffb3;font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s ease;margin-top:20px;width:100%}.config-button:hover{background:#ffffff0d;border-color:#ffffff4d;color:#fff}.config-button svg{width:18px;height:18px}@media(max-width:480px){.login-container{padding:30px 15px 15px;align-items:flex-start}.login-card{padding:25px 20px;border-radius:15px}.login-header{margin-bottom:25px}.login-header .logo-icon{width:55px;height:55px;border-radius:14px}.login-header .logo-icon svg{width:32px;height:32px}.login-header h1{font-size:1.5rem}.login-header p{font-size:.85rem}.login-form{gap:16px}.form-group label{font-size:.85rem}.input-icon{width:16px;height:16px}.form-group input{padding:12px 14px;font-size:16px;border-radius:8px}.password-input input{padding-right:45px}.toggle-password{right:10px}.toggle-password svg{width:20px;height:20px}.checkbox-label{font-size:.85rem}.checkmark{width:18px;height:18px}.message{padding:10px 14px;font-size:.85rem;border-radius:8px}.message svg{width:18px;height:18px}.login-button{padding:12px 20px;font-size:.95rem;border-radius:8px}.login-button svg{width:18px;height:18px}.config-button{padding:10px 16px;font-size:.85rem;border-radius:8px;margin-top:15px}.config-button svg{width:16px;height:16px}}@media(max-width:600px)and (min-width:481px){.login-container{padding:20px}.login-card{padding:30px 25px}}.dashboard-loading,.dashboard-error{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);color:#fff;gap:20px}.spinner-large{width:50px;height:50px;border:4px solid rgba(255,255,255,.2);border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}.spinner-small{width:20px;height:20px;border:2px solid rgba(255,255,255,.2);border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}.error-icon{width:80px;height:80px;background:#ff475733;border-radius:50%;display:flex;align-items:center;justify-content:center}.error-icon svg{width:40px;height:40px;color:#ff6b6b}.dashboard-error h2{margin:0;font-size:1.5rem}.dashboard-error p{color:#ffffffb3;margin:0}.dashboard-container{min-height:100vh;max-height:100vh;background:#0f0f1a;display:flex;flex-direction:column;overflow:hidden}.dashboard-header{background:linear-gradient(135deg,#1a1a2e,#16213e);padding:15px 30px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1);position:sticky;top:0;z-index:100}@media screen and (max-width:768px){.dashboard-header{padding:12px 15px 12px 65px!important;flex-wrap:wrap!important;gap:10px!important}.header-left{gap:10px!important}.logo{width:36px!important;height:36px!important}.logo svg{width:20px!important;height:20px!important}.header-title h1{font-size:1rem!important}.header-title .badge{font-size:.65rem!important;padding:2px 8px!important}.header-right{gap:12px!important}.user-info{font-size:.8rem!important}.logout-btn{padding:6px 12px!important;font-size:.8rem!important}}@media screen and (max-width:480px){.dashboard-header{padding:10px 12px 10px 60px!important}.logo{width:32px!important;height:32px!important}.header-title h1{font-size:.9rem!important}.user-info span,.logout-btn span{display:none!important}}.logo{width:45px;height:45px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;display:flex;align-items:center;justify-content:center}.header-title h1{color:#fff;font-size:1.3rem;margin:0;font-weight:600}.header-title .badge{background:#667eea33;color:#667eea;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:500}.dashboard-main{padding:20px 25px;max-width:1600px;margin:0 auto;width:100%;box-sizing:border-box;flex:1;overflow-y:auto;overflow-x:hidden}.dashboard-main::-webkit-scrollbar{width:8px}.dashboard-main::-webkit-scrollbar-track{background:#ffffff0d}.dashboard-main::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.dashboard-main::-webkit-scrollbar-thumb:hover{background:#ffffff4d}@media screen and (max-width:768px){.dashboard-main{padding:15px!important}}@media screen and (max-width:480px){.dashboard-main{padding:12px!important}}.alert{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;margin-bottom:15px;font-size:.85rem}.alert svg{width:20px;height:20px;flex-shrink:0}.alert.error{background:#ff475726;border:1px solid rgba(255,71,87,.3);color:#ff6b6b}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:20px}.stats-grid-6{grid-template-columns:repeat(6,1fr)}@media(max-width:1200px){.stats-grid-6{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.stats-grid-6{grid-template-columns:repeat(2,1fr)}}@media screen and (max-width:768px){.stats-grid{grid-template-columns:repeat(2,1fr)!important;gap:12px!important}}@media screen and (max-width:400px){.stats-grid{grid-template-columns:1fr!important;gap:10px!important}}@media screen and (max-width:768px){.stat-card{padding:14px!important;gap:12px!important;border-radius:12px!important}.stat-icon{width:45px!important;height:45px!important}.stat-icon svg{width:22px!important;height:22px!important}.stat-value{font-size:1.4rem!important}.stat-label{font-size:.75rem!important}}@media screen and (max-width:480px){.stat-card{padding:12px!important;gap:10px!important}.stat-icon{width:40px!important;height:40px!important}.stat-icon svg{width:20px!important;height:20px!important}.stat-value{font-size:1.2rem!important}.stat-label{font-size:.7rem!important}}.stat-card{background:#ffffff08;border-radius:12px;padding:15px;display:flex;align-items:center;gap:12px;border:1px solid rgba(255,255,255,.08);transition:all .3s ease}.stat-card:hover{transform:translateY(-3px);border-color:#ffffff26}.stat-icon{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon svg{width:24px;height:24px;color:#fff}.stat-card.purple .stat-icon{background:linear-gradient(135deg,#667eea,#764ba2)}.stat-card.blue .stat-icon{background:linear-gradient(135deg,#00d4ff,#00a8cc)}.stat-card.green .stat-icon{background:linear-gradient(135deg,#2ed573,#1abc9c)}.stat-card.orange .stat-icon{background:linear-gradient(135deg,#ffa502,#ff6348)}.stat-card.red .stat-icon{background:linear-gradient(135deg,#ff6b6b,#ee5a5a)}.stat-card.cyan .stat-icon{background:linear-gradient(135deg,#00d4ff,#00a8cc)}.stat-info{display:flex;flex-direction:column}.stat-value{font-size:1.5rem;font-weight:700;color:#fff;line-height:1}.stat-label{color:#fff9;font-size:.8rem;margin-top:4px}.tables-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:15px;margin-bottom:20px}@media screen and (max-width:768px){.tables-grid{grid-template-columns:1fr!important;gap:15px!important}.table-header{padding:12px 15px!important;gap:10px!important}.table-header h2{font-size:.9rem!important}.table-content{padding:10px!important;max-height:280px!important;overflow-x:auto!important}.filters{width:100%!important}.filters select,.filters input{flex:1!important;font-size:16px!important}}.table-card{background:#ffffff08;border-radius:15px;border:1px solid rgba(255,255,255,.08);overflow:hidden}.table-card.full-width{grid-column:1 / -1;margin-bottom:10px}.table-header{padding:14px 18px;background:#ffffff05;border-bottom:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.table-header h2{color:#fff;font-size:1rem;margin:0;font-weight:600;display:flex;align-items:center;gap:10px}.table-header h2 svg{width:20px;height:20px;color:#667eea}.filters{display:flex;gap:10px}.filters select,.filters input{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:8px 12px;color:#fff;font-size:.85rem;cursor:pointer}.filters select:focus,.filters input:focus{outline:none;border-color:#667eea}.filters select option{background:#1a1a2e;color:#fff}.table-content{padding:12px;max-height:250px;overflow-y:auto}.table-content::-webkit-scrollbar{width:6px}.table-content::-webkit-scrollbar-track{background:#ffffff0d}.table-content::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.loading-inline{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px;color:#fff9}table{width:100%;border-collapse:collapse}thead th{text-align:left;padding:10px 12px;color:#fff9;font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.1)}tbody tr{cursor:pointer;transition:all .2s ease}tbody tr:hover{background:#ffffff0d}tbody tr.selected{background:#667eea26}tbody td{padding:10px 12px;color:#ffffffd9;font-size:.85rem;border-bottom:1px solid rgba(255,255,255,.05)}tbody td.center{text-align:center}tbody td.empty{text-align:center;color:#fff6;padding:30px}.badge-count{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:4px 12px;border-radius:20px;font-size:.85rem;font-weight:600}.badge-count.blue{background:linear-gradient(135deg,#00d4ff,#00a8cc)}.user-cell{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:.85rem}.version-badge{background:#2ed57326;color:#2ed573;padding:4px 10px;border-radius:6px;font-size:.8rem;font-weight:500}.version-badge.code{background:#00d4ff26;color:#00d4ff}.platform-badge{padding:4px 10px;border-radius:6px;font-size:.8rem;font-weight:500;text-transform:capitalize}.platform-badge.android{background:#2ed57326;color:#2ed573}.platform-badge.ios{background:#00d4ff26;color:#00d4ff}@media(max-width:1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}.tables-grid{grid-template-columns:1fr}.dashboard-main{padding:20px}}@media(max-width:768px){.dashboard-header{flex-direction:column;gap:15px;padding:15px 20px 15px 70px;position:relative}.header-left{width:100%;justify-content:flex-start}.header-right{width:100%;justify-content:space-between;padding-left:0}.dashboard-main{padding:15px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:12px}.stat-card{padding:15px;flex-direction:column;align-items:flex-start;gap:12px}.stat-icon{width:45px;height:45px}.stat-icon svg{width:22px;height:22px}.stat-value{font-size:1.5rem}.stat-label{font-size:.75rem}.tables-grid{grid-template-columns:1fr;gap:15px}.table-header{flex-direction:column;align-items:flex-start;padding:15px;gap:12px}.table-header h2{font-size:.9rem}.filters{width:100%}.filters select,.filters input{flex:1;min-width:0;font-size:16px}.table-content{padding:10px;overflow-x:auto}table{width:100%;min-width:auto}thead th{padding:10px 12px;font-size:.7rem}tbody td{padding:10px 12px;font-size:.85rem}.user-avatar{width:28px;height:28px;font-size:.75rem}}@media(max-width:480px){.dashboard-loading,.dashboard-error{padding:15px}.dashboard-header{padding:12px 15px 12px 65px}.header-left{gap:10px}.logo{width:38px;height:38px;border-radius:10px}.logo svg{width:20px;height:20px}.header-title h1{font-size:1.1rem}.header-title .badge{font-size:.65rem;padding:2px 8px}.user-info{font-size:.8rem}.user-info svg{width:18px;height:18px}.logout-btn{padding:6px 12px;font-size:.8rem}.logout-btn svg{width:16px;height:16px}.dashboard-main{padding:12px}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:12px;border-radius:12px;flex-direction:column;align-items:flex-start;gap:10px}.stat-icon{width:40px;height:40px;border-radius:10px}.stat-icon svg{width:20px;height:20px}.stat-value{font-size:1.3rem}.stat-label{font-size:.7rem}.table-card{border-radius:12px}.table-header{padding:12px}.table-header h2{font-size:.85rem}.table-header h2 svg{width:18px;height:18px}.filters{gap:8px}.filters select,.filters input{padding:8px 10px;border-radius:6px;font-size:16px}.table-content{max-height:280px;padding:10px}thead th{padding:10px 12px;font-size:.7rem}tbody td{padding:10px 12px;font-size:.85rem}.badge-count{padding:3px 10px;font-size:.8rem}.version-badge,.platform-badge{padding:3px 8px;font-size:.75rem}.user-avatar{width:28px;height:28px;font-size:.75rem}.alert{padding:12px 15px;font-size:.85rem;border-radius:8px}.error-icon{width:60px;height:60px}.error-icon svg{width:30px;height:30px}.dashboard-error h2{font-size:1.2rem;text-align:center}.dashboard-error p{text-align:center}}.header-combobox{position:relative;min-width:250px}.header-combobox input{width:100%;padding:8px 32px 8px 36px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#ffffff14;color:#fff;font-size:.85rem;cursor:text;transition:all .2s}.header-combobox .combobox-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#ffffff80;pointer-events:none;display:flex;align-items:center;justify-content:center}.header-combobox .combobox-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:#ffffff80;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.header-combobox-option{padding:10px 14px;cursor:pointer;color:#fffc;font-size:.85rem;transition:background .15s}@media screen and (max-width:768px){.header-combobox{min-width:0;flex:1}.header-combobox input{font-size:16px}}.charts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:20px}@media(max-width:1024px){.charts-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.charts-grid{grid-template-columns:1fr}}.chart-card{background:#ffffff08;border-radius:15px;border:1px solid rgba(255,255,255,.08);padding:15px;transition:all .3s ease}.chart-card:hover{border-color:#ffffff26}.chart-card.full-width{grid-column:1 / -1;margin-bottom:20px}.donut-chart-container{width:100%}.chart-title{color:#fff;font-size:.95rem;font-weight:600;margin:0 0 10px;text-align:center}.donut-chart-wrapper{position:relative}.donut-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-70%);text-align:center;pointer-events:none}.donut-center-value{display:block;font-size:1.3rem;font-weight:700;color:#fff;line-height:1}.donut-center-label{display:block;font-size:.7rem;color:#ffffff80;margin-top:2px}.chart-empty{display:flex;align-items:center;justify-content:center;height:200px;color:#fff6;font-size:.9rem}.connections-chart-container{width:100%}.chart-tooltip{background:#1e1e3cf2;border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:10px 14px;box-shadow:0 4px 12px #0000004d}.tooltip-label,.tooltip-date{color:#ffffffb3;font-size:.8rem;margin:0 0 4px}.tooltip-value,.tooltip-item{font-size:.9rem;font-weight:600;margin:2px 0}.chart-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:8px}.chart-legend.area-legend{margin-top:12px}.legend-item{display:flex;align-items:center;gap:6px}.legend-color{width:10px;height:10px;border-radius:50%;flex-shrink:0}.legend-text{color:#ffffffb3;font-size:.75rem}.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{stroke:#ffffff1a}.recharts-text{fill:#fff9}@media(max-width:480px){.chart-card{padding:12px}.chart-title{font-size:.85rem}.donut-center-value{font-size:1.1rem}.chart-legend{gap:8px}.legend-text{font-size:.7rem}}.modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px;animation:modalFadeIn .2s ease-out}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-container{background:linear-gradient(180deg,#2a2a3e,#1e1e2e);border-radius:12px;box-shadow:0 25px 50px -12px #00000080,0 0 0 1px #ffffff1a,inset 0 1px #ffffff1a;min-width:320px;max-width:480px;width:100%;overflow:hidden;animation:modalSlideIn .25s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:#0003;border-bottom:1px solid rgba(255,255,255,.08)}.modal-header-left{display:flex;align-items:center;gap:10px}.modal-icon{width:22px;height:22px;flex-shrink:0}.modal-icon svg{width:100%;height:100%}.modal-icon-info{color:#60a5fa}.modal-icon-success{color:#4ade80}.modal-icon-warning{color:#fbbf24}.modal-icon-error{color:#f87171}.modal-icon-confirm{color:#a78bfa}.modal-title{font-size:15px;font-weight:600;color:#fff;margin:0;line-height:1.3}.modal-close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:#fff9;cursor:pointer;transition:all .15s ease;margin-left:8px}.modal-close-btn:hover{background:#ef444433;color:#ef4444}.modal-close-btn:active{transform:scale(.95)}.modal-close-btn svg{width:18px;height:18px}.modal-body{padding:20px 24px;color:#ffffffe6;font-size:14px;line-height:1.6}.modal-body p{margin:0}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;background:#00000026;border-top:1px solid rgba(255,255,255,.05)}.modal-btn{padding:9px 20px;font-size:13px;font-weight:500;border-radius:8px;border:none;cursor:pointer;transition:all .15s ease;min-width:90px}.modal-btn:active{transform:scale(.97)}.modal-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 8px #667eea4d}.modal-btn-primary:hover{background:linear-gradient(135deg,#7b8ff0,#8558b3);box-shadow:0 4px 12px #667eea66}.modal-btn-secondary{background:#ffffff1a;color:#ffffffe6;border:1px solid rgba(255,255,255,.15)}.modal-btn-secondary:hover{background:#ffffff26;border-color:#ffffff40}.modal-btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 2px 8px #ef44444d}.modal-btn-danger:hover{background:linear-gradient(135deg,#f87171,#ef4444);box-shadow:0 4px 12px #ef444466}.modal-info{border-top:3px solid #60a5fa}.modal-success{border-top:3px solid #4ade80}.modal-warning{border-top:3px solid #fbbf24}.modal-error{border-top:3px solid #f87171}.modal-confirm{border-top:3px solid #a78bfa}@media(max-width:480px){.modal-overlay{padding:16px;align-items:flex-end}.modal-container{min-width:unset;max-width:unset;width:100%;border-radius:16px 16px 0 0;animation:modalSlideUp .3s ease-out}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:16px}.modal-body{padding:20px 16px}.modal-footer{padding:16px;flex-direction:column-reverse}.modal-btn{width:100%;padding:12px 20px}}.admin-page{padding:16px 20px;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:12px;flex-shrink:0}@media screen and (max-width:768px){.admin-page{padding:12px!important;height:auto!important;min-height:100%!important;overflow:visible!important;overflow-x:hidden!important}.admin-header{padding-left:55px!important;flex-direction:column!important;align-items:flex-start!important;gap:12px!important;margin-bottom:16px!important}.admin-header h1{font-size:20px!important}.header-actions{width:100%!important}.header-actions .btn-primary{flex:1!important}}.admin-header h1{font-size:26px;font-weight:700;color:#fff;margin:0;background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.header-actions select{padding:10px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#1e1e2ecc;color:#fff;font-size:14px;cursor:pointer;transition:all .2s}.header-actions select:hover{border-color:#ffffff4d}.header-actions select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea33}.filters-row{display:flex;gap:16px;margin-bottom:12px;flex-wrap:wrap;flex-shrink:0}.filter-group{display:flex;align-items:center;gap:8px}.filter-group label{color:#ffffffb3;font-size:14px;font-weight:500;white-space:nowrap}.filter-select{padding:8px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#1e1e2ecc;color:#fff;font-size:14px;cursor:pointer;transition:all .2s;min-width:200px}.filter-select:hover{border-color:#ffffff4d}.filter-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea33}@media screen and (max-width:768px){.filters-row{flex-direction:column;gap:12px}.filter-group{width:100%}.filter-select{flex:1;min-width:0}}.admin-loading{display:flex;justify-content:center;align-items:center;min-height:400px;flex:1}.spinner{width:48px;height:48px;border:4px solid rgba(102,126,234,.2);border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite}.alert{padding:14px 18px;border-radius:10px;margin-bottom:16px;font-size:14px;display:flex;align-items:center;gap:10px;flex-shrink:0}.alert.error{background:#ef444426;border:1px solid rgba(239,68,68,.4);color:#fca5a5}.alert.success{background:#22c55e26;border:1px solid rgba(34,197,94,.4);color:#86efac}.alert.modal-alert{margin-bottom:20px;font-size:13px}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:20px;flex-shrink:0}.stat-box{position:relative;background:linear-gradient(135deg,#ffffff14,#ffffff08);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:18px 16px;text-align:center;cursor:default;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.stat-box.clickable{cursor:pointer}.stat-box:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;opacity:0;transition:opacity .3s}.stat-box:hover{transform:translateY(-3px);border-color:#fff3;box-shadow:0 8px 30px #0000004d}.stat-box:hover:before{opacity:1}.stat-box.active{border-width:2px;transform:translateY(-2px)}.stat-box.active:before{opacity:1}.stat-box.green{border-color:#22c55e66}.stat-box.green:before{background:linear-gradient(90deg,#22c55e,#4ade80)}.stat-box.green.active{border-color:#22c55e;background:#22c55e26}.stat-box.red{border-color:#ef444466}.stat-box.red:before{background:linear-gradient(90deg,#ef4444,#f87171)}.stat-box.red.active{border-color:#ef4444;background:#ef444426}.stat-box.blue{border-color:#3b82f666}.stat-box.blue:before{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.stat-box.blue.active{border-color:#3b82f6;background:#3b82f626}.stat-box.orange{border-color:#f9731666}.stat-box.orange:before{background:linear-gradient(90deg,#f97316,#fb923c)}.stat-box.orange.active{border-color:#f97316;background:#f9731626}.stat-box.purple{border-color:#a855f766}.stat-box.purple:before{background:linear-gradient(90deg,#a855f7,#c084fc)}.stat-box.purple.active{border-color:#a855f7;background:#a855f726}.stat-box.yellow{border-color:#eab30866}.stat-box.yellow:before{background:linear-gradient(90deg,#eab308,#facc15)}.stat-box.yellow.active{border-color:#eab308;background:#eab30826}.stat-box .stat-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:36px;height:36px;opacity:.2;transition:opacity .3s}.stat-box:hover .stat-icon{opacity:.35}.stat-box .stat-icon svg{width:100%;height:100%;fill:currentColor}.stat-box.green .stat-icon{color:#22c55e}.stat-box.red .stat-icon{color:#ef4444}.stat-box.blue .stat-icon{color:#3b82f6}.stat-box.orange .stat-icon{color:#f97316}.stat-box.purple .stat-icon{color:#a855f7}.stat-box.yellow .stat-icon{color:#eab308}.stat-value{display:block;font-size:28px;font-weight:800;color:#fff;margin-bottom:2px;line-height:1.1}.stat-box.green .stat-value{color:#4ade80}.stat-box.red .stat-value{color:#f87171}.stat-box.blue .stat-value{color:#60a5fa}.stat-box.orange .stat-value{color:#fb923c}.stat-box.purple .stat-value{color:#c084fc}.stat-box.yellow .stat-value{color:#facc15}.stat-label{font-size:11px;color:#ffffff80;text-transform:uppercase;letter-spacing:.8px;font-weight:600}.filter-bar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;align-items:center;padding:14px 16px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px;flex-shrink:0}.filter-bar select,.filter-bar input{padding:10px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#0000004d;color:#fff;font-size:14px;transition:all .2s}.filter-bar select:hover,.filter-bar input:hover{border-color:#ffffff40}.filter-bar select:focus,.filter-bar input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea33}.filter-bar input::placeholder{color:#fff6}.filter-bar .filter-label{font-size:13px;color:#fff9;font-weight:500}.filter-bar .filter-separator{color:#ffffff4d;margin:0 8px}button{cursor:pointer;font-size:14px;font-weight:500;border:none;border-radius:8px;padding:10px 18px;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 15px #667eea4d}.btn-primary:hover:not(:disabled){box-shadow:0 6px 20px #667eea66;transform:translateY(-1px)}.btn-primary:disabled{background:#8080804d;color:#fff6;box-shadow:none;cursor:not-allowed}.btn-secondary{background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.15)}.btn-secondary:hover{background:#ffffff1f;border-color:#ffffff40}.btn-danger{background:#ef444426;color:#fca5a5;border:1px solid rgba(239,68,68,.4)}.btn-danger:hover{background:#ef444440}.btn-icon{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:#ffffff14;color:#ffffffb3;border-radius:6px}.btn-icon:hover{background:#ffffff26;color:#fff}.btn-icon.danger{background:#ef444426;color:#fca5a5}.btn-icon.danger:hover{background:#ef444440}.btn-icon.warning{background:#f9731626;color:#fdba74}.btn-icon.warning:hover{background:#f9731640}.btn-icon.success{background:#22c55e26;color:#4ade80}.btn-icon.success:hover{background:#22c55e40}.btn-icon svg{width:18px;height:18px}.data-grid-container{flex:1;min-height:0;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}@media screen and (max-width:768px){.data-grid-container{flex:none!important;height:calc(100vh - 250px)!important;min-height:300px!important;max-height:500px!important;overflow-x:auto!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;border-radius:10px!important;width:100%!important;max-width:100%!important}.data-grid-container .ag-root-wrapper{min-width:auto!important;width:100%!important}.data-grid-container .ag-header-cell{padding:8px 10px!important}.data-grid-container .ag-cell{padding:8px 10px!important;font-size:13px!important}.data-grid-container .ag-header-row,.data-grid-container .ag-row{height:40px!important}.btn-icon{min-width:44px!important;min-height:44px!important;width:44px!important;height:44px!important}.grid-actions{gap:6px!important}}@media screen and (max-width:480px){.data-grid-container{height:calc(100vh - 220px)!important;min-height:250px!important;max-height:400px!important}.data-grid-container .ag-root-wrapper{min-width:auto!important;width:100%!important}.data-grid-container .ag-header-cell,.data-grid-container .ag-cell{padding:6px 8px!important;font-size:12px!important}.data-grid-container .ag-header-row,.data-grid-container .ag-row{height:38px!important}}.grid-actions{display:flex;gap:6px;align-items:center;justify-content:center;height:100%}.status{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;max-height:20px;line-height:1.4}.status.active{background:#22c55e33;color:#4ade80}.status.inactive{background:#ef444433;color:#f87171}.platform-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;background:#ffffff1a;color:#ffffffb3;white-space:nowrap;max-height:20px;line-height:1.4}.platform-badge.android{background:#3ddc8433;color:#3ddc84}.platform-badge.ios{background:#3b82f633;color:#60a5fa}.platform-badge.web{background:#f9731633;color:#fb923c}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 8px;border-radius:12px;font-size:12px;font-weight:700;background:#667eea33;color:#a5b4fc;line-height:1}.form-modal-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.form-modal{background:linear-gradient(135deg,#1a1a2e,#16213e);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;width:100%;max-width:450px;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px #00000080}.form-modal.form-modal-large{max-width:700px}.form-modal.form-modal-wide{max-width:800px}.form-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.form-column{min-width:0}@media screen and (max-width:768px){.form-modal.form-modal-wide{max-width:100%}.form-two-columns{grid-template-columns:1fr;gap:0}}.form-modal h2{font-size:20px;font-weight:600;color:#fff;margin:0 0 20px}.form-modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:500;color:#fff9;margin-bottom:6px}.form-group input:not([type=checkbox]),.form-group select,.form-group textarea{width:100%;padding:10px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#0000004d;color:#fff;font-size:14px;box-sizing:border-box;transition:all .2s}.form-group select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='rgba(255,255,255,0.5)'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:20px;cursor:pointer}.form-group input[type=date]{color-scheme:dark}.form-group input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer;opacity:.7;transition:opacity .2s}.form-group input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.form-group input:not([type=checkbox]):hover,.form-group select:hover{border-color:#ffffff40}.form-group input:not([type=checkbox]):focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea33}.form-group input:not([type=checkbox]):disabled,.form-group select:disabled{opacity:.5;cursor:not-allowed}.form-group input.required-field{border-color:#f59e0b;background:#f59e0b0d}.form-group input.required-field:focus{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b33}.vinculacion-section{margin-bottom:16px}.vinculacion-title{display:block;font-size:13px;font-weight:500;color:#fff9;margin-bottom:10px}.vinculacion-item{display:flex;align-items:center;gap:10px;margin-bottom:8px;color:#ffffffe6;font-size:14px}.vinculacion-item input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#667eea}.vinculacion-item label{cursor:pointer;margin:0}.vinculacion-item:hover label{color:#fff}.form-hint{display:block;margin-top:6px;font-size:12px;color:#ffffff80}.text-muted{color:#fff6}.combobox-container{position:relative;width:100%}.combobox-input-wrapper{display:flex;gap:8px;align-items:center;position:relative}.combobox-input-wrapper .combobox-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#ffffff80;pointer-events:none;display:flex;align-items:center;justify-content:center;z-index:1}.combobox-input-wrapper input,.form-group .combobox-input-wrapper input{flex:1;padding:10px 36px 10px 38px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='rgba(255,255,255,0.5)'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:20px;cursor:pointer}.combobox-input-wrapper input:disabled,.form-group .combobox-input-wrapper input:disabled{background-image:none!important;padding:10px 14px 10px 38px!important;cursor:not-allowed;background-color:#ffffff0d!important;border-color:#ffffff14!important;color:#ffffffb3!important}.btn-icon-small{width:38px;height:38px;min-width:38px;padding:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:20px;font-weight:600;cursor:pointer;transition:all .2s}.btn-icon-small:hover{transform:scale(1.05);box-shadow:0 4px 15px #667eea66}.btn-icon-small.btn-edit{background:linear-gradient(135deg,#f97316,#ea580c)}.btn-icon-small.btn-edit:hover{box-shadow:0 4px 15px #f9731666}.btn-icon-small svg{width:18px;height:18px}.combobox-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;max-height:250px;overflow-y:auto;background:#1e1e2e;border:1px solid rgba(255,255,255,.15);border-radius:8px;box-shadow:0 10px 40px #00000080;z-index:100}.combobox-option{padding:12px 14px;cursor:pointer;display:flex;flex-direction:column;gap:2px;border-bottom:1px solid rgba(255,255,255,.06);transition:background .15s}.combobox-option:last-child{border-bottom:none}.combobox-option:hover{background:#667eea26}.combobox-option.selected{background:#667eea40}.combobox-option .option-name{font-size:14px;font-weight:500;color:#fff}.combobox-option .option-email{font-size:12px;color:#ffffff80}.readonly-input{background:#ffffff0d!important;border-color:#ffffff14!important;color:#ffffffb3!important;cursor:default!important}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{flex:1;padding-right:44px!important}.btn-toggle-password{position:absolute;right:8px;width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#ffffff80;cursor:pointer;border-radius:6px;transition:all .2s;z-index:10}.btn-toggle-password:hover{background:#ffffff1a;color:#fffc}.btn-toggle-password svg{width:20px;height:20px}.form-section{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.08)}.form-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.form-section h3{font-size:14px;font-weight:600;color:#a5b4fc;margin:0 0 16px;text-transform:uppercase;letter-spacing:.5px}.modal-description{font-size:13px;color:#fff9;margin:-10px 0 20px;line-height:1.5}select option{background:#1e1e2e;color:#fff;padding:10px}.form-modal.form-modal-error{max-width:950px;width:92vw;padding:36px 32px;max-height:98vh}.error-detail{margin-bottom:20px}.error-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.detail-row{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:14px;color:#ffffffd9;display:flex;gap:8px}.detail-row strong{color:#ffffff80;min-width:100px}@media screen and (max-width:768px){.form-modal.form-modal-error{max-width:100%;width:100%}.error-detail-grid{grid-template-columns:1fr}}.error-text{background:#0006;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:14px;font-size:12px;font-family:JetBrains Mono,Fira Code,monospace;color:#ffffffe6;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto;margin-top:8px}.error-text.stack{max-height:300px;color:#fca5a5}.checkbox-label{display:flex;align-items:center;gap:8px;color:#fffc;font-size:14px;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:#667eea;cursor:pointer}.toggle-container{display:flex;align-items:center;gap:12px}.toggle-switch{position:relative;display:inline-block;width:52px;height:28px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:#ef444466;border:1px solid rgba(239,68,68,.6);transition:all .3s ease;border-radius:28px}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background:#fff;transition:all .3s ease;border-radius:50%;box-shadow:0 2px 4px #0000004d}.toggle-switch input:checked+.toggle-slider{background:#22c55e66;border-color:#22c55e99}.toggle-switch input:checked+.toggle-slider:before{transform:translate(24px)}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 0 3px #667eea4d}.toggle-label{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;transition:color .3s ease}.toggle-label.active{color:#4ade80}.toggle-label.inactive{color:#f87171}.text-danger{color:#f87171!important;font-weight:500}@media(max-width:1024px){.stats-row{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.admin-page{padding:16px}.admin-header{flex-direction:column;align-items:flex-start}.admin-header h1{font-size:22px}.header-actions{width:100%}.header-actions select{flex:1;min-width:0}.stats-row{grid-template-columns:repeat(2,1fr)}.stat-box{padding:14px 12px}.stat-value{font-size:24px}.filter-bar{flex-direction:column;align-items:stretch}.filter-bar select,.filter-bar input,.filter-bar button{width:100%}.form-modal{padding:20px;margin:10px}}@media(max-width:480px){.stats-row{grid-template-columns:1fr 1fr;gap:10px}.stat-box{padding:12px 10px}.stat-value{font-size:20px}.stat-label{font-size:10px}}@media screen and (max-width:768px){.form-modal-overlay{padding:20px 10px 10px!important;align-items:flex-start!important}.form-modal{max-width:100%!important;max-height:calc(100vh - 40px)!important;border-radius:16px!important}}@media screen and (max-width:480px){.form-modal-overlay{padding:0!important;align-items:stretch!important}.form-modal{border-radius:0!important;max-height:100vh!important;min-height:100vh!important;padding:20px 16px!important}.form-modal h2{font-size:18px!important}.form-modal-actions{flex-direction:column!important;gap:10px!important}.form-modal-actions button{width:100%!important}.form-group input,.form-group select,.form-group textarea{padding:12px!important;font-size:16px!important}.form-group .combobox-input-wrapper input,.form-group .modal-combobox input{padding:12px 36px 12px 40px!important}}.ag-header-cell-comp-wrapper{overflow:hidden}.custom-header{display:flex;align-items:center;justify-content:space-between;width:100%;height:100%;padding:0 4px;gap:8px;overflow:hidden}.custom-header-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:flex;align-items:center;gap:4px}.custom-header-sort-icon{font-size:10px;color:#667eea}.custom-header-filter-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;cursor:pointer;color:#ffffff80;transition:all .15s;flex-shrink:0}.custom-header-filter-icon:hover{background:#667eea33;color:#fffc}.custom-header-filter-icon.active{color:#667eea}.custom-header-filter-icon.open{background:#667eea4d;color:#667eea}.set-filter{min-width:200px;max-width:300px;background:#1e1e2e;border-radius:8px;padding:12px;font-size:13px}.set-filter-search{margin-bottom:10px}.set-filter-search input{width:100%;padding:8px 12px;border-radius:6px;border:1px solid rgba(255,255,255,.15);background:#0000004d;color:#fff;font-size:13px;box-sizing:border-box}.set-filter-search input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.set-filter-search input::placeholder{color:#fff6}.set-filter-select-all{display:flex;align-items:center;gap:8px;padding:8px 4px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:8px;cursor:pointer;color:#ffffffb3;font-style:italic}.set-filter-select-all:hover{color:#ffffffe6}.set-filter-list{max-height:250px;overflow-y:auto}.set-filter-item{padding:4px;border-radius:4px;transition:background .15s}.set-filter-item:hover{background:#667eea26}.set-filter-item{display:flex;align-items:center;gap:8px;cursor:pointer;color:#ffffffe6;width:100%;min-width:0}.set-filter-item input[type=checkbox]{width:16px;height:16px;accent-color:#667eea;cursor:pointer;flex-shrink:0}.set-filter-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.set-filter-value:hover{color:#a5b4fc;text-decoration:underline}.set-filter-count{color:#fff6;font-size:11px;flex-shrink:0;margin-left:4px}.set-filter-empty{padding:16px;text-align:center;color:#fff6;font-style:italic}.set-filter-list::-webkit-scrollbar{width:6px}.set-filter-list::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.set-filter-list::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.set-filter-list::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.ag-checkbox-center{display:flex!important;justify-content:center!important;align-items:center!important}.ag-checkbox-center .ag-cell-wrapper{justify-content:center!important}.ag-checkbox-center .ag-selection-checkbox{margin-right:0!important}.header-combobox{position:relative;min-width:400px}.header-combobox input{width:100%;padding:10px 32px 10px 36px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#1e1e2ecc;color:#fff;font-size:14px;cursor:text;transition:all .2s}.header-combobox .combobox-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#ffffff80;pointer-events:none;display:flex;align-items:center;justify-content:center}.header-combobox input::placeholder{color:#ffffff80}.header-combobox input:hover{border-color:#ffffff4d}.header-combobox input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea33}.header-combobox .combobox-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:#ffffff80;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.header-combobox .combobox-clear:hover{color:#fff}.header-combobox-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:#1e1e3a;border:1px solid rgba(255,255,255,.15);border-radius:8px;max-height:250px;overflow-y:auto;z-index:1000;box-shadow:0 4px 12px #0000004d}.header-combobox-option{padding:10px 14px;cursor:pointer;color:#fffc;font-size:14px;transition:background .15s}.header-combobox-option:hover{background:#667eea33}.header-combobox-option.selected{background:#667eea4d;color:#fff}.header-combobox-dropdown::-webkit-scrollbar{width:6px}.header-combobox-dropdown::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.header-combobox-dropdown::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.header-combobox-dropdown::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.modal-combobox{position:relative;width:100%;min-width:500px}.modal-combobox input,.form-group .modal-combobox input{width:100%;padding:10px 36px 10px 38px!important;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#0000004d;color:#fff;font-size:14px;cursor:text;transition:all .2s;box-sizing:border-box}.modal-combobox .combobox-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#ffffff80;pointer-events:none;display:flex;align-items:center;justify-content:center}.modal-combobox input::placeholder{color:#fff6}.modal-combobox input:hover{border-color:#ffffff40}.modal-combobox input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea33}.modal-combobox .combobox-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:#ffffff80;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s}.modal-combobox .combobox-clear:hover{color:#fff;background:#ffffff1a}.modal-combobox-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:#1e1e3a;border:1px solid rgba(255,255,255,.15);border-radius:8px;max-height:200px;overflow-y:auto;z-index:1100;box-shadow:0 8px 24px #0006}.modal-combobox-option{padding:10px 14px;cursor:pointer;color:#fffc;font-size:14px;transition:background .15s;border-bottom:1px solid rgba(255,255,255,.05)}.modal-combobox-option:last-child{border-bottom:none}.modal-combobox-option:hover{background:#667eea33}.modal-combobox-option.selected{background:#667eea4d;color:#fff}.modal-combobox-option.disabled{color:#fff6;cursor:default;font-style:italic}.modal-combobox-option.disabled:hover{background:transparent}.modal-combobox-dropdown::-webkit-scrollbar{width:6px}.modal-combobox-dropdown::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.modal-combobox-dropdown::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.modal-combobox-dropdown::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.grid-filter-footer{display:flex;align-items:center;gap:8px;padding:10px 16px;margin-top:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:8px;flex-shrink:0}.grid-filter-footer-icon{width:16px;height:16px;color:#ffffff80;flex-shrink:0}.grid-filter-footer-text{font-size:13px;color:#fff9;line-height:1.4}.grid-filter-footer-text strong{color:#ffffffd9;font-weight:600}.grid-filter-footer-clear{margin-left:auto;padding:4px 10px;font-size:12px;color:#fff9;background:#ffffff14;border:1px solid rgba(255,255,255,.1);border-radius:4px;cursor:pointer;transition:all .15s}.grid-filter-footer-clear:hover{background:#ffffff1f;color:#fff;border-color:#fff3}@media screen and (max-width:768px){.grid-filter-footer{padding:8px 12px;margin-top:8px}.grid-filter-footer-text{font-size:12px}}.modal-content{background:linear-gradient(180deg,#2a2a3e,#1e1e2e);border-radius:12px;box-shadow:0 25px 50px -12px #00000080,0 0 0 1px #ffffff1a;min-width:400px;max-width:500px;width:100%;overflow:hidden;animation:modalSlideIn .25s ease-out}.modal-content.modal-wide{min-width:600px;max-width:700px}.modal-content .modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#0003;border-bottom:1px solid rgba(255,255,255,.08)}.modal-content .modal-header h2{font-size:18px;font-weight:600;color:#fff;margin:0}.modal-content .modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:#fff9;cursor:pointer;transition:all .15s ease}.modal-content .modal-close:hover{background:#ef444433;color:#ef4444}.modal-content .modal-close svg{width:20px;height:20px}.modal-content .modal-body{padding:24px}.modal-content .modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;background:#00000026;border-top:1px solid rgba(255,255,255,.05)}@media screen and (max-width:768px){.modal-content,.modal-content.modal-wide{min-width:unset;max-width:95vw}.modal-combobox{min-width:unset}.header-combobox{min-width:100%;width:100%}}.btn-copy-creds{display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease}.btn-copy-creds.copied{background-color:#10b981!important;border-color:#10b981!important;color:#fff!important}.btn-copy-creds svg{flex-shrink:0}.sidebar-overlay{position:fixed;inset:0;background:#00000080;z-index:998;display:none}.sidebar{position:fixed;left:0;top:0;bottom:0;width:220px;background:linear-gradient(180deg,#1a1a2e,#16213e);border-right:1px solid rgba(255,255,255,.1);z-index:999;transition:transform .3s ease;overflow-y:auto;padding-top:20px}.sidebar-nav{padding:20px 0;display:flex;flex-direction:column;gap:4px}.sidebar-link{display:flex;align-items:center;gap:12px;padding:14px 20px;color:#ffffffb3;text-decoration:none;transition:all .2s ease;border-left:3px solid transparent}.sidebar-link:hover{background:#ffffff0d;color:#fff}.sidebar-link.active{background:#667eea33;color:#667eea;border-left-color:#667eea}.sidebar-icon{width:24px;height:24px;flex-shrink:0}.sidebar-icon svg{width:100%;height:100%}.sidebar-label{font-size:14px;font-weight:500}@media(max-width:768px){.sidebar-overlay{display:block}.sidebar{transform:translate(-100%);width:280px;max-width:85vw;padding-top:env(safe-area-inset-top,20px)}.sidebar.open{transform:translate(0)}.sidebar-link{padding:16px 20px;min-height:52px}.sidebar-icon{width:26px;height:26px}.sidebar-label{font-size:15px}.sidebar-nav{gap:2px;padding:10px 0}}@media(max-width:480px){.sidebar{width:100%;max-width:100%;border-right:none}.sidebar-link{padding:18px 24px;min-height:56px}.sidebar-icon{width:28px;height:28px}.sidebar-label{font-size:16px}.sidebar-nav{padding:15px 0}}.global-header{background:linear-gradient(135deg,#1a1a2e,#16213e);padding:12px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0;z-index:100}.header-left{display:flex;align-items:center;gap:15px}.logo{width:45px;height:45px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.logo svg{width:25px;height:25px;color:#fff}.header-title{display:flex;flex-direction:column;gap:2px}.header-title h1{color:#fff;font-size:1.3rem;margin:0;font-weight:600;line-height:1.2}.header-title .badge{background:#667eea33;color:#667eea;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:500;width:fit-content}.app-selector{margin-left:10px}.app-selector select{color:#fff;border:none;padding:8px 16px;border-radius:20px;font-weight:700;cursor:pointer;font-size:.9rem;transition:all .3s ease;outline:none}.app-selector select:hover{opacity:.9;transform:scale(1.02)}.app-selector select:focus{box-shadow:0 0 0 2px #ffffff4d}.app-selector select option{color:#fff;font-weight:700}.app-loading{padding:8px 16px;background:#667eea80;border-radius:20px;display:flex;align-items:center;justify-content:center}.spinner-tiny{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.header-right{display:flex;align-items:center;gap:20px}.user-info{display:flex;align-items:center;gap:8px;color:#fffc;font-size:.9rem}.user-info svg{width:20px;height:20px;color:#667eea}.logout-btn{background:#ff475726;border:1px solid rgba(255,71,87,.3);color:#ff6b6b;padding:8px 16px;border-radius:8px;font-size:.85rem;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .3s ease}.logout-btn:hover{background:#ff475740}.logout-btn svg{width:18px;height:18px}@media(max-width:1024px){.global-header{padding:12px 20px}.header-title h1{font-size:1.1rem}.header-title .badge{font-size:.7rem}}@media(max-width:768px){.global-header{padding:12px 15px 12px 65px;flex-wrap:wrap;gap:10px}.header-left{gap:10px;flex-wrap:wrap}.logo{width:36px;height:36px}.logo svg{width:20px;height:20px}.header-title h1{font-size:1rem}.header-title .badge{font-size:.65rem;padding:2px 8px}.app-selector{margin-left:0}.app-selector select{padding:6px 12px;font-size:.85rem}.header-right{gap:12px}.user-info{font-size:.8rem}.user-info svg{width:18px;height:18px}.logout-btn{padding:6px 12px;font-size:.8rem}.logout-btn svg{width:16px;height:16px}}@media(max-width:480px){.global-header{padding:10px 12px 10px 60px}.logo{width:32px;height:32px}.header-title h1{font-size:.9rem}.header-title .badge{display:none}.app-selector select{padding:5px 10px;font-size:.8rem}.user-info span,.logout-btn span{display:none}.logout-btn{padding:8px}}
