:root{--bg-primary: #F8FAFC;--bg-secondary: #FFFFFF;--text-primary: #0F172A;--text-secondary: #334155;--text-muted: #64748B;--border-color: #E2E8F0;--card-bg: #FFFFFF;--header-bg: #FFFFFF;--header-bg-rgb: 255, 255, 255;--sidebar-bg: #1E293B;--sidebar-text: #CBD5E1;--sidebar-hover: #334155;--accent-color: #2563EB;--accent-hover: #1D4ED8;--table-header-bg: #F1F5F9;--table-row-hover: #F8FAFC;--input-bg: #FFFFFF;--input-border: #CBD5E1;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05)}[data-theme=dark]{--bg-primary: #000000;--bg-secondary: #0F172A;--text-primary: #FFFFFF;--text-secondary: #CBD5E1;--text-muted: #94A3B8;--border-color: #1E293B;--card-bg: #0F172A;--header-bg: #000000;--header-bg-rgb: 0, 0, 0;--sidebar-bg: #000000;--sidebar-text: #94A3B8;--sidebar-hover: #1E293B;--accent-color: #3B82F6;--accent-hover: #60A5FA;--table-header-bg: #1E293B;--table-row-hover: #0F172A;--input-bg: #0A0A0A;--input-border: #3B82F6}*{box-sizing:border-box;padding:0;margin:0}html,body{max-width:100vw;overflow-x:hidden;background-color:var(--bg-primary);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;line-height:1.6;transition:background-color .3s ease,color .3s ease}@media (max-width: 768px){body{font-size:14px}}a{color:inherit;text-decoration:none}.container{max-width:1400px;margin:0 auto;padding:20px}@media (max-width: 768px){.container{padding:15px}}.admin-layout{display:flex;min-height:100vh;background:#f8fafc}.sidebar{width:220px;background:var(--sidebar-bg);border-right:1px solid var(--border-color);display:flex;flex-direction:column;position:fixed;height:100vh;left:0;top:0;z-index:100;transition:all .3s ease;overflow-y:auto;overflow-x:hidden}.sidebar.collapsed{width:70px}.sidebar-header{padding:20px;border-bottom:1px solid #334155;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0}@media (max-width: 768px){.sidebar-header{padding:15px}}.sidebar-logo{font-size:16px;font-weight:700;color:#fff;text-decoration:none;display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;flex:1;min-width:0}.sidebar.collapsed .sidebar-logo{justify-content:center}.sidebar-toggle{background:#334155;border:none;border-radius:6px;padding:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;transition:all .2s;flex-shrink:0}.sidebar-toggle:hover{background:var(--sidebar-hover);color:#fff}.sidebar-nav{flex:1;padding:16px 0;overflow-y:auto}.sidebar-link{display:flex;align-items:center;gap:12px;padding:12px 20px;color:var(--sidebar-text);text-decoration:none;font-weight:500;transition:all .2s;border-left:3px solid transparent}.sidebar.collapsed .sidebar-link{justify-content:center;padding:12px}.sidebar-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px}.sidebar-label{white-space:nowrap;overflow:hidden}.sidebar.collapsed .sidebar-label{display:none}.sidebar-link:hover{background:var(--sidebar-hover);color:#fff}.sidebar-link.active{background:var(--sidebar-hover);color:var(--accent-color);border-left:4px solid var(--accent-color);font-weight:700;box-shadow:inset 4px 0 10px -5px var(--accent-color)}.sidebar-link.active .sidebar-icon{color:var(--accent-color);filter:drop-shadow(0 0 5px rgba(59,130,246,.5))}.sidebar-footer{padding:16px 20px;border-top:1px solid #334155}.sidebar-logout{width:100%;padding:10px;background:#dc2626;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}.sidebar.collapsed .sidebar-logout{padding:10px;justify-content:center}.sidebar.collapsed .sidebar-logout span{display:none}.sidebar-logout:hover{background:#b91c1c}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e293b,#334155);padding:20px;position:relative;overflow:hidden}.login-background-pattern{position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 20% 50%,rgba(37,99,235,.15) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(37,99,235,.1) 0%,transparent 50%),radial-gradient(circle at 40% 20%,rgba(37,99,235,.08) 0%,transparent 50%),linear-gradient(135deg,transparent 0%,rgba(37,99,235,.05) 100%);animation:float 20s ease-in-out infinite;opacity:.8}@keyframes float{0%,to{transform:translateY(0) rotate(0);opacity:.8}50%{transform:translateY(-20px) rotate(5deg);opacity:1}}.login-shapes{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden}.shape{position:absolute;border-radius:50%;filter:blur(60px);opacity:.3;animation:shapeFloat 15s ease-in-out infinite}.shape-1{width:300px;height:300px;background:linear-gradient(135deg,#2563eb,#1d4ed8);top:-100px;left:-100px;animation-delay:0s}.shape-2{width:400px;height:400px;background:linear-gradient(135deg,#1d4ed8,#1e40af);bottom:-150px;right:-150px;animation-delay:5s}.shape-3{width:250px;height:250px;background:linear-gradient(135deg,#3b82f6,#2563eb);top:50%;right:10%;animation-delay:10s}@keyframes shapeFloat{0%,to{transform:translate(0) scale(1);opacity:.3}33%{transform:translate(30px,-30px) scale(1.1);opacity:.4}66%{transform:translate(-20px,20px) scale(.9);opacity:.25}}.login-card{background:var(--bg-secondary);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border-radius:24px;box-shadow:0 25px 80px #0009,0 0 0 1px var(--border-color) inset;width:100%;max-width:460px;padding:36px 32px;position:relative;z-index:1;animation:slideUp .6s cubic-bezier(.16,1,.3,1);border:1px solid var(--border-color)}@media (max-width: 768px){.login-container{padding:16px}.login-card{padding:28px 24px;max-width:100%;border-radius:20px}.login-header{margin-bottom:24px}.login-header h1{font-size:28px}.login-header p{font-size:14px}.login-icon{width:68px;height:68px;border-radius:18px;margin-bottom:20px}.login-form{gap:22px}.login-form .form-group input{padding:14px 18px;font-size:14px}.shape{filter:blur(40px)}.shape-1{width:200px;height:200px}.shape-2{width:250px;height:250px}.shape-3{width:180px;height:180px}}@keyframes slideUp{0%{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.login-header{text-align:center;margin-bottom:28px}.login-icon{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;margin-bottom:16px;position:relative}.login-icon:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent,rgba(255,255,255,.1),transparent);animation:shine 3s infinite}@keyframes shine{0%{transform:translate(-100%) translateY(-100%) rotate(45deg)}to{transform:translate(100%) translateY(100%) rotate(45deg)}}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 10px 30px #2563eb66,0 0 #2563eb33}50%{transform:scale(1.05);box-shadow:0 15px 40px #2563eb99,0 0 0 8px #2563eb1a}}.login-header h1{display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:800;margin-bottom:8px;letter-spacing:-.8px;line-height:1.2}.login-header p{color:#64748b;font-size:15px;font-weight:500;letter-spacing:.2px}.login-form{display:flex;flex-direction:column;gap:20px}.login-form .form-group{display:flex;flex-direction:column;gap:10px;position:relative}.login-form .form-group label{font-weight:600;color:var(--text-primary);font-size:14px;display:flex;align-items:center;gap:10px;letter-spacing:.2px}.login-form .form-group label svg{color:var(--accent-color);flex-shrink:0;transition:all .3s ease}.login-form .form-group:focus-within label svg{color:#1d4ed8;transform:scale(1.1)}.login-form .form-group input{padding:14px 18px;border:2px solid var(--border-color);border-radius:12px;font-size:15px;transition:all .3s cubic-bezier(.4,0,.2,1);background:var(--input-bg);font-weight:400;color:var(--text-primary);box-shadow:0 1px 3px #0000000d}.login-form .form-group input:hover{border-color:#cbd5e1;background:#fff;box-shadow:0 2px 6px #00000014;transform:translateY(-1px)}.login-form .form-group input:focus{outline:none;border-color:#2563eb;background:#fff;box-shadow:0 0 0 4px #2563eb1a,0 4px 12px #2563eb26;transform:translateY(-2px)}.login-form .form-group input::placeholder{color:#94a3b8;font-weight:400}.btn-block{width:100%;padding:14px;font-size:16px;font-weight:600;letter-spacing:.3px}.login-btn{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:8px;border-radius:12px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 14px #2563eb59,0 0 #2563eb33;background:linear-gradient(135deg,#2563eb,#1d4ed8);position:relative;overflow:hidden}.login-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.login-btn:hover:not(:disabled):before{left:100%}.login-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 8px 24px #2563eb73,0 0 0 4px #2563eb1a;background:linear-gradient(135deg,#1d4ed8,#1e40af)}.login-btn:active:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #2563eb59,0 0 0 2px #2563eb1a}.login-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.login-btn svg{flex-shrink:0}.login-btn .spinner{animation:spin 1s linear infinite}.skeleton-loader{background:linear-gradient(90deg,var(--table-header-bg) 25%,var(--border-color) 50%,var(--table-header-bg) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite linear}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}[data-theme=dark] .skeleton-loader{background:linear-gradient(90deg,#1e293b 25%,#334155,#1e293b 75%);background-size:200% 100%}.loading-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.loading-spinner{width:40px;height:40px;border:4px solid #E2E8F0;border-top:4px solid #2563EB;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.main-content{flex:1;margin-left:220px;min-height:100vh;min-width:0;background:var(--bg-primary);transition:margin-left .3s ease;display:flex;flex-direction:column;overflow-x:hidden}.admin-layout.sidebar-collapsed .main-content{margin-left:70px}.admin-header{background:rgba(var(--header-bg-rgb),.8);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);padding:0;position:sticky;top:0;z-index:50;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transition:all .3s ease}.header-content{display:flex;justify-content:space-between;align-items:center;padding:16px 30px;max-width:100%}.header-left{display:flex;align-items:center;gap:12px}.header-menu-toggle{display:none;background:#f1f5f9;border:none;border-radius:6px;padding:8px;cursor:pointer;color:#64748b;transition:all .2s;align-items:center;justify-content:center;min-width:40px;min-height:40px}.header-menu-toggle:hover{background:#e2e8f0;color:#2563eb}.header-title{font-size:20px;font-weight:600;color:var(--text-primary);margin:0}.header-right{display:flex;align-items:center;gap:16px}.profile-dropdown{position:relative}.profile-trigger{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s;font-size:14px;font-weight:500;color:var(--text-primary)}.profile-trigger:hover{background:#e2e8f0;border-color:#2563eb}.profile-avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#2563eb;border-radius:50%;color:#fff;flex-shrink:0}.profile-username{font-weight:500;color:#0f172a}.dropdown-arrow{transition:transform .2s;color:#64748b;flex-shrink:0}.dropdown-arrow.open{transform:rotate(180deg)}.profile-dropdown-menu{position:absolute;top:calc(100% + 12px);right:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-lg);min-width:240px;z-index:1000;overflow:hidden;animation:dropdownFadeIn .2s cubic-bezier(.16,1,.3,1)}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{padding:16px;background:var(--table-header-bg);border-bottom:1px solid var(--border-color)}.dropdown-user-info{display:flex;align-items:center;gap:12px}.dropdown-avatar{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#2563eb;border-radius:50%;color:#fff;flex-shrink:0}.dropdown-user-details{flex:1;min-width:0}.dropdown-username{font-weight:600;color:var(--text-primary);font-size:15px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-user-role{font-size:12px;color:var(--text-muted)}.dropdown-divider{height:1px;background:var(--border-color);margin:4px 0}.dropdown-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:transparent;border:none;text-align:left;cursor:pointer;transition:all .2s;font-size:14px;color:var(--text-secondary);font-weight:500}.dropdown-item:hover{background:var(--table-row-hover);color:var(--accent-color)}.dropdown-item.logout-item{color:#dc3545}.dropdown-item.logout-item:hover{background:#fff5f5;color:#c82333}.dropdown-item svg{flex-shrink:0;color:inherit}.content-wrapper{flex:1;padding:30px;overflow-y:auto}.mobile-menu-toggle{display:none;position:fixed;top:15px;left:15px;z-index:1001;background:#2563eb;color:#fff;border:none;border-radius:8px;padding:12px;cursor:pointer;box-shadow:0 2px 8px #0003;transition:all .2s;min-width:44px;min-height:44px;align-items:center;justify-content:center}@media (max-width: 768px){.mobile-menu-toggle{top:75px}}.mobile-menu-toggle:hover{background:#1d4ed8;transform:scale(1.05)}.mobile-menu-toggle svg{display:block}.sidebar-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .3s ease}.sidebar-overlay.show{display:block;opacity:1}.sidebar-close-mobile{display:none;background:#334155;border:none;border-radius:6px;padding:8px;cursor:pointer;align-items:center;justify-content:center;color:#fff;transition:all .2s;flex-shrink:0;min-width:36px;min-height:36px}.sidebar-close-mobile:hover{background:#475569;color:#2563eb}@media (max-width: 768px){.mobile-menu-toggle{display:flex!important}.sidebar-overlay.show{display:block!important;opacity:1;z-index:999!important}.sidebar{width:240px;max-width:80vw;transform:translate(-100%);transition:transform .3s ease;box-shadow:2px 0 10px #0000001a;z-index:1000!important}.sidebar.open{transform:translate(0)!important}.sidebar-close-mobile{display:flex!important}.sidebar-toggle{display:none!important}.main-content{margin-left:0!important;width:100%}.admin-layout.sidebar-collapsed .main-content{margin-left:0!important}.admin-header{padding-top:0}.header-content{padding:12px 15px;flex-wrap:wrap;gap:12px}.header-menu-toggle{display:flex}.header-title{font-size:18px}.header-right{gap:10px;margin-left:auto;display:flex!important;opacity:1!important;visibility:visible!important}.profile-trigger{padding:6px 10px;gap:8px;min-width:44px;min-height:44px}.profile-username{display:none}.profile-avatar{width:28px;height:28px}.profile-dropdown-menu{min-width:200px;right:0}.dropdown-username{font-size:14px}.dropdown-user-role{font-size:12px}.content-wrapper{padding:15px}.mobile-menu-toggle{display:none!important}.sidebar-link{min-height:48px;padding:14px 20px}.sidebar-logout{min-height:48px}}.page-title{font-size:28px;font-weight:600;margin-bottom:30px;color:var(--text-primary)}@media (max-width: 768px){.page-title{font-size:22px;margin-bottom:20px}}.btn{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;gap:8px}@media (max-width: 768px){.btn{padding:10px 16px;font-size:13px;width:100%;justify-content:center}.btn:not(.btn-block){width:auto;min-width:auto}}.btn-primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;box-shadow:0 4px 6px -1px #2563eb33}.btn-primary:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-1px);box-shadow:0 10px 15px -3px #2563eb4d}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.btn-secondary:hover{background:var(--table-header-bg);border-color:var(--text-muted)}.btn-danger{background:#dc3545;color:#fff;box-shadow:0 4px 6px -1px #dc354533}.btn-danger:hover{background:#c82333;transform:translateY(-1px);box-shadow:0 10px 15px -3px #dc35454d}.btn:disabled{opacity:.5;cursor:not-allowed}.table-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;width:100%;max-width:100%;overflow-x:auto;box-shadow:var(--shadow-sm);-webkit-overflow-scrolling:touch}@media (max-width: 768px){.table-container{border-radius:8px}.table-container::-webkit-scrollbar{height:6px;width:6px}.table-container::-webkit-scrollbar-track{background:var(--bg-primary)}.table-container::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:10px}.table-container::-webkit-scrollbar-thumb:hover{background:var(--accent-color)}}[data-theme=dark] ::-webkit-scrollbar{width:8px;height:8px}[data-theme=dark] ::-webkit-scrollbar-track{background:#000}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#1e293b;border-radius:10px;border:2px solid #000000}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#3b82f6}.table{width:100%;border-collapse:collapse;min-width:600px}.table thead{background:var(--table-header-bg);border-bottom:2px solid var(--border-color)}.table th{padding:16px;text-align:left;font-weight:700;color:var(--text-primary);font-size:13px;white-space:nowrap;text-transform:uppercase;letter-spacing:.05em;opacity:.8}.table td{padding:16px;border-bottom:1px solid var(--border-color);font-size:14px;color:var(--text-secondary);font-weight:500;transition:all .2s ease}@media (max-width: 768px){.table{font-size:13px}.table th,.table td{padding:12px 10px;font-size:12px}}.table tbody tr{transition:all .2s ease}.table tbody tr:hover{background:var(--table-row-hover);transform:scale(1.002);box-shadow:var(--shadow-sm);z-index:1;position:relative}.table tbody tr:last-child td{border-bottom:none}.status-switch-container{display:flex;align-items:center;gap:8px}.status-label{font-size:12px;font-weight:500;min-width:60px}.status-label.active{color:#10b981;font-weight:700}.status-label.inactive{color:#ef4444;font-weight:700}.badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}.badge-active{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.2)}.badge-inactive{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.2)}.badge-free{background:#3b82f626;color:#3b82f6;border:1px solid rgba(59,130,246,.2)}.badge-reserved{background:#f59e0b26;color:#f59e0b;border:1px solid rgba(245,158,11,.2)}.badge-used{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.2)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:30px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0006}@media (max-width: 768px){.modal,.modal-content{width:95%;max-width:95%;padding:20px;max-height:95vh;margin:10px}.modal-overlay{padding:20px 10px 10px;align-items:flex-start}}.modal-header{padding:20px 30px;background:var(--table-header-bg);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.modal-title{margin:0;font-size:1.25rem;font-weight:700;color:var(--text-primary)}.modal-close-btn{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-muted);font-size:24px;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.modal-close-btn:hover{background:var(--accent-color);color:#fff;border-color:var(--accent-color);transform:rotate(90deg)}.modal-form{padding:30px}@media (max-width: 768px){.modal-form{padding:20px 15px}}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:var(--text-primary);font-size:14px}.form-group input,.form-group textarea{width:100%;padding:12px 16px;border:1px solid var(--border-color);background:var(--input-bg);color:var(--text-primary);border-radius:6px;font-size:14px;transition:all .2s;font-family:inherit}@media (max-width: 768px){.form-group{margin-bottom:16px}.form-group label{font-size:13px;margin-bottom:6px}.form-group input,.form-group textarea{padding:10px 14px;font-size:14px}}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled,.form-group textarea:disabled{background:var(--bg-primary);cursor:not-allowed;opacity:.7}.error-message{background:#fee;color:#c33;padding:12px;border-radius:6px;margin-bottom:20px;font-size:14px;border:1px solid #fcc}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:30px;padding-top:20px;border-top:1px solid var(--border-color)}@media (max-width: 768px){.modal-actions{flex-direction:column-reverse;gap:10px;margin-top:20px;padding-top:15px}.modal-actions button{width:100%;padding:12px}}.modal-actions button{padding:12px 24px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;border:none}.modal-actions button[type=button]{background:#f1f5f9;color:#64748b}.modal-actions button[type=button]:hover{background:#e2e8f0}.modal-actions button[type=submit]{background:#2563eb;color:#fff}.modal-actions button[type=submit]:hover{background:#1d4ed8;transform:translateY(-2px);box-shadow:0 4px 12px #2563eb66}.modal-actions button:disabled{opacity:.6;cursor:not-allowed;transform:none}.ip-details-modal{max-width:900px;width:95%;padding:0}@media (max-width: 768px){.ip-details-modal{width:98%;max-width:98%}.ip-details-content{padding:20px 15px}.ip-details-info{flex-direction:column;gap:15px;padding:15px}.info-item{width:100%}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:25px 30px;border-bottom:1px solid rgba(255,255,255,.2);background:#2563eb;border-radius:8px 8px 0 0}.modal-header .modal-title{color:#fff;margin:0;font-size:22px}.modal-close-btn{background:#fff3;border:none;color:#fff;font-size:28px;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;line-height:1;padding:0}.modal-close-btn:hover{background:#ffffff4d;transform:rotate(90deg)}.ip-details-content{padding:30px}.ip-details-info{display:flex;gap:30px;margin-bottom:25px;padding:20px;background:#f8f9fa;border-radius:8px;flex-wrap:wrap}.info-item{display:flex;flex-direction:column;gap:5px}.info-label{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.info-value{font-size:16px;font-weight:600;color:#0f172a}.ip-value{font-family:Monaco,Menlo,Ubuntu Mono,monospace;color:#4c6ef5;background:#f0f4ff;padding:6px 12px;border-radius:6px;display:inline-block}.brokers-table-container{margin-top:20px}@media (max-width: 768px){.brokers-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.brokers-table{min-width:600px}.brokers-table th,.brokers-table td{padding:10px 8px;font-size:12px}}.brokers-table-title{font-size:18px;font-weight:600;margin-bottom:15px;color:#0f172a}.brokers-table{width:100%;border-collapse:collapse}.brokers-table thead{background:#f8f9fa}.brokers-table th{padding:12px 15px;text-align:left;font-weight:600;color:#0f172a;font-size:13px;border-bottom:2px solid #E2E8F0}.brokers-table td{padding:12px 15px;border-bottom:1px solid #f0f0f0;font-size:14px}.brokers-table tbody tr:hover{background:#f8f9fa}.broker-name{font-weight:600;color:#2e7d32;background:#e8f5e9;padding:4px 12px;border-radius:12px;display:inline-block;font-size:13px}.modal-title{font-size:20px;font-weight:600;margin-bottom:20px}.form-group{margin-bottom:20px}.form-label{display:block;margin-bottom:8px;font-weight:500;color:#333;font-size:14px}.form-input{width:100%;padding:10px 12px;border:1px solid #e5e5e5;border-radius:6px;font-size:14px;transition:border-color .2s}.form-input:focus{outline:none;border-color:#0070f3}.form-textarea{width:100%;padding:10px 12px;border:1px solid #e5e5e5;border-radius:6px;font-size:14px;min-height:100px;resize:vertical;font-family:inherit}.form-textarea:focus{outline:none;border-color:#0070f3}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.loading{text-align:center;padding:40px;color:#64748b}.error{background:#f8d7da;color:#721c24;padding:12px;border-radius:6px;margin-bottom:20px}.filter-bar{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap;align-items:flex-end}@media (max-width: 768px){.filter-bar{flex-direction:column;gap:12px;align-items:stretch}.filter-group,.filter-input{width:100%}}.filter-group{display:flex;flex-direction:column;gap:6px}.filter-label{font-size:13px;color:#334155;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.filter-input{padding:10px 14px;border:1px solid var(--input-border);border-radius:10px;font-size:14px;background:var(--bg-secondary);transition:all .2s cubic-bezier(.4,0,.2,1);min-height:44px;color:var(--text-primary);font-weight:500;box-shadow:var(--shadow-sm)}.filter-input:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 4px #2563eb1a,var(--shadow-md);transform:translateY(-1px)}.filter-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.filter-input:hover{border-color:#cbd5e1}.filter-clear-btn{height:40px;padding:10px 20px;background:#64748b;color:#fff;border:none;font-weight:600;transition:all .2s}.filter-clear-btn:hover{background:#475569;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.empty-state{text-align:center;padding:60px 20px;color:#64748b}.empty-state h3{margin-bottom:10px;color:#0f172a}@media (max-width: 768px){.empty-state{padding:40px 15px}.empty-state h3{font-size:18px}.empty-state p{font-size:14px}}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}@media (max-width: 768px){.page-header{flex-direction:column;align-items:stretch;gap:15px;margin-bottom:15px}.page-header .btn{width:100%;min-height:44px}button,.btn,a.btn,input,textarea,select{min-height:44px;touch-action:manipulation}}.pagination-container{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding:16px 24px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;flex-wrap:wrap;gap:15px;box-shadow:var(--shadow-sm)}.pagination-info{display:flex;align-items:center;gap:20px;color:var(--text-muted);font-size:14px;font-weight:500}.pagination-limit{display:flex;align-items:center;gap:8px}.pagination-limit label{font-size:13px;color:var(--text-muted);font-weight:600;text-transform:uppercase}.pagination-select{padding:8px 12px;border:1.5px solid var(--border-color);border-radius:10px;font-size:14px;background:var(--bg-primary);cursor:pointer;color:var(--text-primary);font-weight:600;transition:all .2s}.pagination-select:focus{outline:none;border-color:#2563eb}.pagination-controls{display:flex;gap:5px;align-items:center}.pagination-btn{min-width:40px;height:40px;padding:0 14px;border:1.5px solid var(--border-color);border-radius:10px;background:var(--bg-primary);color:var(--text-secondary);font-size:14px;font-weight:700;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center}.pagination-btn:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--accent-color);color:var(--accent-color);transform:translateY(-2px);box-shadow:0 4px 12px #3b82f626}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-btn.active{background:var(--accent-color);color:#fff;border-color:var(--accent-color);box-shadow:0 4px 12px #3b82f64d}.pagination-btn.active:hover{background:#1d4ed8;border-color:#1d4ed8}@media (max-width: 768px){.pagination-container{flex-direction:column;align-items:stretch;padding:15px;gap:12px}.pagination-info{justify-content:space-between;width:100%;font-size:13px}.pagination-controls{justify-content:center;flex-wrap:wrap;gap:4px}.pagination-btn{min-width:32px;height:32px;padding:0 8px;font-size:13px}}.data-table-container{margin-top:20px}.data-table-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding:20px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;flex-wrap:wrap;gap:15px}.data-table-info{color:#64748b;font-size:14px}.data-table-controls{display:flex;gap:5px;align-items:center}.data-table-page-info{padding:0 15px;color:#64748b;font-size:14px}.data-table-page-size{display:flex;align-items:center;gap:8px}.data-table-page-size label{font-size:14px;color:#64748b}@media (max-width: 768px){.data-table-pagination{flex-direction:column;align-items:stretch;padding:15px;gap:12px}.data-table-info{width:100%;text-align:center;font-size:13px}.data-table-controls{justify-content:center;flex-wrap:wrap;width:100%;gap:4px}.data-table-page-size{justify-content:center;width:100%}.data-table-page-info{padding:0 10px;font-size:13px}}.monitoring-page{width:100%}.monitoring-header{background:#2563eb;border-radius:12px;padding:30px;margin-bottom:30px;box-shadow:0 4px 6px #0000001a}.monitoring-header-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px}.monitoring-title-section{display:flex;flex-direction:column;gap:8px}.monitoring-title{font-size:32px;font-weight:700;color:#fff;margin:0;letter-spacing:-.5px}.monitoring-subtitle{font-size:16px;color:#ffffffe6;font-weight:400}.monitoring-stats{display:flex;gap:20px;flex-wrap:wrap}.stat-card{background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:10px;padding:16px 24px;min-width:140px;border:1px solid rgba(255,255,255,.2)}.stat-label{font-size:12px;color:#fffc;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-weight:500}.stat-value{font-size:24px;font-weight:700;color:#fff}.monitoring-filters{background:#f1f5f9;border-radius:10px;padding:20px;margin-bottom:25px;border:1px solid #E2E8F0}.monitoring-table-section{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 4px #0000000d}.monitoring-table{width:100%}.monitoring-table thead{background:#2563eb}.monitoring-table thead th{color:#fff;font-weight:600;padding:18px 20px;text-transform:uppercase;font-size:12px;letter-spacing:.5px;border:none}.table-header-panel{width:15%}.table-header-ip{width:18%}.table-header-broker{width:15%}.table-header-users{width:25%}.table-header-date{width:27%}.monitoring-table-row{transition:all .2s ease}.monitoring-table-row:hover{background:#f1f5f9;transform:scale(1.001);box-shadow:0 2px 8px #0000000d}.monitoring-table-row td{padding:18px 20px;border-bottom:1px solid #E2E8F0}.table-cell-panel{font-weight:500}.panel-badge{display:inline-block;background:#2563eb;color:#fff;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600;box-shadow:0 2px 4px #2563eb4d}.table-cell-ip{font-family:Monaco,Menlo,Ubuntu Mono,monospace}.ip-address{display:inline-block;background:#f0f4ff;color:#4c6ef5;padding:6px 12px;border-radius:6px;font-weight:600;font-size:13px;border:1px solid #e0e7ff}.table-cell-broker{font-weight:500}.broker-badge{display:inline-block;background:#e8f5e9;color:#2e7d32;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600;border:1px solid #c8e6c9}.table-cell-users{max-width:300px}.users-list{display:flex;flex-wrap:wrap;gap:6px}.no-users{color:#94a3b8;font-style:italic}.table-cell-date{color:#64748b;font-size:13px}.date-time{display:inline-block;background:#f1f5f9;padding:6px 12px;border-radius:6px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;color:#0f172a}@media (max-width: 768px){.monitoring-header{padding:20px;margin-bottom:20px}.monitoring-header-content{flex-direction:column;align-items:flex-start;gap:15px}.monitoring-stats{width:100%;gap:10px}.stat-card{flex:1;min-width:auto;padding:12px 16px}.stat-value{font-size:20px}.stat-label{font-size:11px}.monitoring-title{font-size:22px}.monitoring-subtitle{font-size:13px}.monitoring-filters{padding:15px}.monitoring-table-section{overflow-x:auto;-webkit-overflow-scrolling:touch}.monitoring-table{min-width:800px}.monitoring-table thead th{padding:12px 10px;font-size:10px}.monitoring-table-row td{padding:12px 10px;font-size:11px}.users-list{flex-direction:column;gap:4px}}.activity-logs-page{width:100%}.activity-logs-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #E2E8F0}.page-subtitle{color:#64748b;font-size:14px;margin-top:8px;font-weight:400}.logs-stats{display:flex;gap:12px;align-items:center}.stat-badge{display:inline-flex;align-items:center;padding:8px 16px;background:#2563eb;color:#fff;border-radius:8px;font-size:14px;font-weight:500;box-shadow:0 2px 8px #2563eb4d}.stat-badge strong{font-weight:700;margin-left:4px}.activity-logs-filters{background:#f1f5f9;padding:20px;border-radius:12px;border:1px solid #E2E8F0;margin-bottom:25px}.activity-logs-filters .filter-label{display:flex;align-items:center;font-weight:600}.activity-logs-table-container{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000000d;border:1px solid #E2E8F0}.activity-logs-table{width:100%;border-collapse:collapse}.activity-logs-table thead{background:#2563eb}.activity-logs-table thead th{color:#fff;font-weight:600;padding:18px 16px;text-transform:uppercase;font-size:11px;letter-spacing:.5px;text-align:left;border:none}.activity-logs-table tbody tr{border-bottom:1px solid #E2E8F0;transition:all .2s ease}.activity-logs-table tbody tr:hover{background:#f1f5f9;transform:scale(1.001);box-shadow:0 2px 8px #0000000d}.activity-logs-table tbody tr.log-row-success{border-left:3px solid #28a745}.activity-logs-table tbody tr.log-row-error{border-left:3px solid #dc3545}.activity-logs-table tbody td{padding:16px;font-size:13px;vertical-align:top}.col-time{width:140px;min-width:140px}.col-status{width:100px;min-width:100px}.col-panel{width:120px;min-width:120px}.col-ip{width:140px;min-width:140px}.col-broker,.col-user{width:120px;min-width:120px}.col-code{width:100px;min-width:100px}.col-message{min-width:200px}.col-error{min-width:250px;max-width:400px}.time-cell{display:flex;flex-direction:column;gap:4px}.time-date{font-weight:600;color:#0f172a;font-size:12px}.time-time{font-family:Monaco,Menlo,Ubuntu Mono,monospace;color:#64748b;font-size:11px}.badge-success{display:inline-flex;align-items:center;background:#d4edda;color:#155724;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;border:1px solid #c3e6cb}.badge-error{display:inline-flex;align-items:center;background:#f8d7da;color:#721c24;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;border:1px solid #f5c6cb}.panel-badge{display:inline-block;background:#2563eb;color:#fff;padding:6px 14px;border-radius:20px;font-size:12px;font-weight:600;box-shadow:0 2px 4px #2563eb4d}.ip-address{display:inline-block;background:#f0f4ff;color:#4c6ef5;padding:6px 12px;border-radius:6px;font-weight:600;font-size:12px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;border:1px solid #e0e7ff}.broker-badge{display:inline-block;background:#e8f5e9;color:#2e7d32;padding:6px 14px;border-radius:20px;font-size:12px;font-weight:600;border:1px solid #c8e6c9}.user-tag{display:inline-block;background:#fff3e0;color:#e65100;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500;border:1px solid #ffe0b2}.status-code-badge{display:inline-block;padding:6px 12px;border-radius:6px;font-weight:700;font-size:12px;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.message-text{color:#0f172a;font-size:12px;line-height:1.5}.error-message-cell{display:flex;align-items:flex-start;gap:6px;color:#dc3545;font-size:11px;line-height:1.5}.error-text{flex:1;word-break:break-word}.empty-value{color:#94a3b8;font-style:italic;font-size:12px}@media (max-width: 1200px){.activity-logs-table{font-size:12px}.activity-logs-table thead th{padding:12px 10px;font-size:10px}.activity-logs-table tbody td{padding:12px 10px;font-size:11px}.col-time{width:120px;min-width:120px}.col-message{min-width:150px}.col-error{min-width:200px;max-width:300px}}@media (max-width: 768px){.activity-logs-header{flex-direction:column;gap:16px;margin-bottom:20px;padding-bottom:15px}.page-subtitle{font-size:13px}.logs-stats{flex-wrap:wrap;gap:8px}.stat-badge{padding:6px 12px;font-size:12px}.activity-logs-filters{flex-direction:column;padding:15px;gap:12px}.activity-logs-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.activity-logs-table{min-width:1000px;font-size:11px}.activity-logs-table thead th{padding:10px 8px;font-size:9px}.activity-logs-table tbody td{padding:10px 8px;font-size:10px}}
