.app-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:var(--header-height) 1fr;min-height:100vh;background:var(--background);gap:0}.app-shell .sidebar{grid-row:1 / span 2;background:var(--gradient-primary);border-right:none;padding:24px 0;width:var(--sidebar-width);min-width:var(--sidebar-width);box-shadow:var(--shadow-lg);z-index:10;position:relative;overflow:hidden}.sidebar:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--primary-light),var(--primary));z-index:1}.app-shell .header{grid-column:2;height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:5}.app-shell .content{grid-column:2;padding:32px;background:var(--background);overflow-y:auto;min-height:calc(100vh - var(--header-height))}.brand{display:flex;gap:16px;align-items:center;padding:0 24px 24px;margin-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.brand .logo{width:48px;height:48px;background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-lg);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:1.25rem;border:1px solid rgba(255,255,255,.3);box-shadow:0 4px 12px #0000001a}.brand .logo-text{display:flex;flex-direction:column;gap:4px}.brand .app-name{font-size:1.25rem;font-weight:700;color:#fff;letter-spacing:.5px}.brand .app-role{font-size:.75rem;font-weight:500;color:#fffc;letter-spacing:1px;text-transform:uppercase}.header .header-left{display:flex;align-items:center;gap:12px}.hamburger-btn{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;padding:8px;background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background .2s ease}.hamburger-btn:hover{background:var(--background-secondary)}.hamburger-line{display:block;width:22px;height:2px;background:var(--text-primary);border-radius:2px;transition:all .3s ease}.hamburger-btn[aria-expanded=true] .hamburger-line:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger-btn[aria-expanded=true] .hamburger-line:nth-child(2){opacity:0}.hamburger-btn[aria-expanded=true] .hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.sidebar-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:8;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;transition:opacity .3s ease}.sidebar-overlay.open{opacity:1}.header .actions{display:flex;gap:16px;align-items:center}.header .user{display:flex;gap:12px;align-items:center;color:var(--text-secondary);font-size:.95rem}.header .user .user-info{text-align:right;margin-right:12px}.header .user .user-name{font-size:14px;font-weight:600;color:#1e293b;line-height:1.3}.header .user .user-role{font-size:12px;font-weight:500;color:#64748b;line-height:1.3}.avatar{width:40px;height:40px;border-radius:var(--radius-full);background:var(--gradient-primary);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:1rem;border:2px solid white;box-shadow:var(--shadow-md);transition:all .2s ease;flex-shrink:0}.avatar:hover{transform:scale(1.05);box-shadow:var(--shadow-lg)}.dropdown-menu{position:absolute;top:100%;right:0;margin-top:8px;background:#fff;border-radius:var(--radius-xl);box-shadow:0 20px 60px #00000026,0 4px 20px #0000001a;border:1px solid #e2e8f0;min-width:220px;z-index:100;overflow:hidden}.dropdown-menu .dropdown-header{padding:16px 20px;border-bottom:1px solid #f1f5f9;background:#f8fafc}.dropdown-menu .dropdown-header .dropdown-user-name{font-weight:600;color:#1e293b;font-size:14px;line-height:1.3}.dropdown-menu .dropdown-header .dropdown-user-email{font-size:12px;color:#334155;margin-top:2px;line-height:1.3;font-weight:500}.dropdown-menu .dropdown-items{padding:8px 0}.dropdown-menu .dropdown-items-bottom{padding:8px 0;border-top:1px solid #f1f5f9}.dropdown-item{width:100%;padding:10px 20px;text-align:left;background:transparent;border:none;color:#475569;font-size:14px;cursor:pointer;display:flex;align-items:center;gap:10px;transition:all .15s ease}.dropdown-item:hover{background:#f1f5f9;color:#1e293b}.dropdown-item.danger{color:#ef4444;font-weight:600}.dropdown-item.danger:hover{background:#fef2f2;color:#dc2626}.nav{padding:0 12px;display:flex;flex-direction:column;gap:4px}.nav a{display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:var(--radius-lg);color:#ffffffbf;font-weight:500;font-size:.95rem;transition:all .2s ease;position:relative;text-decoration:none}.nav a:hover{background:#ffffff14;color:#fff}.nav a.active{background:#ffffff1f;color:#fff;font-weight:600}.nav a.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:20px;background:#fff;border-radius:0 var(--radius-full) var(--radius-full) 0}.nav-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;opacity:.85}.nav a.active .nav-icon{opacity:1}.nav-group{display:flex;flex-direction:column}.nav-group-toggle{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;border-radius:var(--radius-lg);color:#ffffffbf;font-weight:500;font-size:.95rem;background:transparent;border:none;cursor:pointer;transition:all .2s ease;font-family:inherit;text-align:left;position:relative}.nav-group-toggle:hover{background:#ffffff14;color:#fff}.nav-group-toggle.active{color:#fff;font-weight:600}.nav-group-toggle.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:20px;background:#fff;border-radius:0 var(--radius-full) var(--radius-full) 0}.nav-group-arrow{margin-left:auto;transition:transform .25s ease;flex-shrink:0;opacity:.4}.nav-group-arrow.open{transform:rotate(180deg)}.nav-submenu{max-height:0;overflow:hidden;transition:max-height .3s ease,opacity .25s ease;opacity:0;position:relative;display:flex;flex-direction:column;gap:2px;margin-top:2px;margin-left:20px;padding-left:12px;border-left:1px solid rgba(255,255,255,.1)}.nav-submenu.open{max-height:300px;opacity:1}.nav-sub-link{display:flex;align-items:center;padding:7px 14px;border-radius:var(--radius-md);color:#ffffff80;font-size:.85rem;font-weight:500;text-decoration:none;transition:all .2s ease;position:relative}.nav-sub-link:hover{color:#ffffffd9;background:#ffffff0f}.nav-sub-link.active{color:#fff;font-weight:600;background:#ffffff1a}.card{background:var(--surface);border-radius:var(--radius-xl);padding:24px;box-shadow:var(--shadow-md);border:1px solid var(--border);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl);border-color:var(--primary-light)}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--gradient-primary);opacity:0;transition:opacity .3s ease}.card:hover:before{opacity:1}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.card-title{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0}.card-subtitle{font-size:.875rem;color:var(--text-tertiary);margin-top:4px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}.stat-card{background:var(--surface);border-radius:var(--radius-xl);padding:24px;display:flex;align-items:center;gap:20px;box-shadow:var(--shadow-md);border:1px solid var(--border);transition:all .3s ease;cursor:pointer}.stat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.stat-icon{width:56px;height:56px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:1.5rem}.stat-card.pending .stat-icon{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#d97706}.stat-card.approved .stat-icon{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#059669}.stat-card.rejected .stat-icon{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#dc2626}.stat-card.all .stat-icon{background:linear-gradient(135deg,#e0f2fe,#bae6fd);color:var(--primary)}.stat-content{flex:1}.stat-value{font-size:2rem;font-weight:800;color:var(--text-primary);line-height:1;margin-bottom:4px}.stat-label{font-size:.875rem;color:var(--text-secondary);font-weight:500}.stat-change{font-size:.75rem;font-weight:600;margin-top:8px;display:flex;align-items:center;gap:4px}.stat-change.positive{color:var(--success)}.stat-change.negative{color:var(--error)}.table-container{background:var(--surface);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--border)}.table{width:100%;border-collapse:collapse;background:var(--surface)}.table thead{background:var(--gradient-primary)}.table th{padding:16px 20px;text-align:left;font-size:.875rem;color:#fff;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.1)}.table td{padding:16px 20px;text-align:left;font-size:.95rem;color:var(--text-secondary);border-bottom:1px solid var(--border-light);transition:background-color .2s ease}.table tbody tr:hover td{background:var(--background-secondary)}.table tbody tr:last-child td{border-bottom:none}.status-badge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-pending{background:#f59e0b1a;color:var(--warning);border:1px solid rgba(245,158,11,.2)}.status-approved{background:#10b9811a;color:var(--success);border:1px solid rgba(16,185,129,.2)}.status-rejected{background:#ef44441a;color:var(--error);border:1px solid rgba(239,68,68,.2)}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:var(--radius-lg);font-weight:600;font-size:.95rem;cursor:pointer;border:none;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:#ffffff80;opacity:0;border-radius:100%;transform:scale(1) translate(-50%);transform-origin:50% 50%}.btn:focus:not(:active):after{animation:ripple 1s ease-out}@keyframes ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(20);opacity:0}}.btn-primary,.btn.primary{background:var(--gradient-primary);color:#fff;box-shadow:0 4px 12px #3b82f64d}.btn-primary:hover,.btn.primary:hover{transform:translateY(-2px);box-shadow:0 6px 16px #3b82f666}.btn-primary:active,.btn.primary:active{transform:translateY(0)}.btn-secondary,.btn.secondary{background:var(--gradient-success);color:#fff;box-shadow:0 4px 12px #10b9814d}.btn-secondary:hover,.btn.secondary:hover{transform:translateY(-2px);box-shadow:0 6px 16px #10b98166}.btn-secondary:active,.btn.secondary:active{transform:translateY(0)}.btn-ghost,.btn.ghost{background:transparent;color:var(--primary);border:1px solid var(--border)}.btn-ghost:hover,.btn.ghost:hover{background:var(--background-secondary);border-color:var(--primary-light)}.btn-danger,.btn.danger{background:var(--gradient-error);color:#fff;box-shadow:0 4px 12px #ef44444d}.btn-danger:hover,.btn.danger:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ef444466}.btn-danger:active,.btn.danger:active{transform:translateY(0)}.btn.sm{padding:6px 12px;font-size:.875rem}.btn.lg{padding:14px 28px;font-size:1rem}.form-group{margin-bottom:24px}.form-label{display:block;margin-bottom:8px;font-weight:600;color:var(--text-primary);font-size:.95rem}.form-control{width:100%;padding:12px 16px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);color:var(--text-primary);font-size:1rem;font-family:inherit;transition:all .2s ease}.form-control:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.form-control::placeholder{color:var(--text-tertiary)}.search-box{position:relative;max-width:400px}.search-box .form-control{padding-left:44px;background:var(--background-secondary);border:1px solid transparent}.search-box .form-control:focus{background:var(--surface);border-color:var(--primary)}.search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.empty-state{text-align:center;padding:64px 32px;background:var(--surface);border-radius:var(--radius-xl);border:2px dashed var(--border)}.empty-state-icon{width:80px;height:80px;margin:0 auto 24px;background:var(--background-secondary);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:2rem}.empty-state-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:12px}.empty-state-description{color:var(--text-secondary);max-width:400px;margin:0 auto 24px;line-height:1.6}.loading{display:inline-block;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 1024px){.app-shell{grid-template-columns:1fr;grid-template-rows:var(--header-height) 1fr}.app-shell .sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);min-width:var(--sidebar-width);z-index:9;transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);grid-row:auto;padding:24px 0;overflow-y:auto}.app-shell .sidebar.open{transform:translate(0)}.sidebar-overlay{display:block;pointer-events:none}.sidebar-overlay.open{pointer-events:auto}.app-shell .header{grid-column:1}.hamburger-btn{display:flex}.app-shell .content{grid-column:1;padding:24px 20px}.grid{grid-template-columns:1fr}}@media (max-width: 768px){.app-shell .sidebar{width:min(var(--sidebar-width),85vw);min-width:unset}.app-shell .content{padding:20px 16px}.app-shell .header{padding:0 16px}.header .user .user-info{display:none}.header .user{gap:8px}.avatar{width:36px;height:36px;font-size:.875rem}.dropdown-menu{min-width:200px;right:-8px}.brand{padding:0 20px 20px}.brand .logo{width:40px;height:40px;font-size:1rem}.brand .app-name{font-size:1.1rem}.nav{padding:0 12px}.nav a{padding:12px 14px;font-size:.9rem}.card{padding:20px}.card:hover{transform:none}.stat-card{padding:20px}.stat-card:hover{transform:none}.table th,.table td{padding:12px 16px}.btn{padding:8px 16px}.btn:hover,.btn-primary:hover,.btn.primary:hover,.btn-secondary:hover,.btn.secondary:hover,.btn-danger:hover,.btn.danger:hover{transform:none}.stat-card:hover{transform:none;box-shadow:var(--shadow-md)}.card:hover{transform:none;box-shadow:var(--shadow-md);border-color:var(--border)}.card:hover:before{opacity:0}.nav a:hover{transform:none}.search-box{max-width:100%}.empty-state{padding:40px 20px}.empty-state-icon{width:60px;height:60px;font-size:1.5rem}.empty-state-title{font-size:1.25rem}}@media (max-width: 480px){.app-shell .content{padding:16px 12px}.app-shell .header{padding:0 12px}.hamburger-btn{width:36px;height:36px;padding:6px}.hamburger-line{width:20px}.avatar{width:32px;height:32px;font-size:.8rem}.card{padding:16px;border-radius:var(--radius-lg)}.card-header{flex-direction:column;gap:12px}.card-title{font-size:1.1rem}.stat-card{padding:16px;gap:16px}.stat-icon{width:44px;height:44px;font-size:1.25rem}.stat-value{font-size:1.5rem}.table th,.table td{padding:10px 12px;font-size:.85rem}.btn{padding:8px 14px;font-size:.85rem}.btn.sm{padding:5px 10px;font-size:.8rem}.form-control{padding:10px 14px;font-size:16px}.brand .logo{width:36px;height:36px;font-size:.9rem}.brand .app-name{font-size:1rem}.brand .app-role{font-size:.7rem}.nav a{padding:10px 12px;font-size:.85rem}.grid{gap:16px}.empty-state{padding:32px 16px}.empty-state-icon{width:48px;height:48px;font-size:1.25rem;margin-bottom:16px}.empty-state-title{font-size:1.1rem}.empty-state-description{font-size:.9rem}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e3a5f 40%,#1e40af);padding:20px;position:relative;overflow:hidden}.decorative-circle-1{position:absolute;width:300px;height:300px;border-radius:50%;background:#3b82f61a;top:-100px;right:-100px;z-index:0;animation:floatCircle1 8s ease-in-out infinite}.decorative-circle-2{position:absolute;width:200px;height:200px;border-radius:50%;background:#60a5fa14;bottom:-50px;left:-50px;z-index:0;animation:pulseCircle 6s ease-in-out infinite}.decorative-circle-3{position:absolute;width:150px;height:150px;border-radius:50%;background:#2563eb1a;top:40%;left:-30px;z-index:0;animation:floatCircle3 10s ease-in-out infinite}@keyframes floatCircle1{0%,to{transform:translateY(0)}50%{transform:translateY(20px)}}@keyframes pulseCircle{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes floatCircle3{0%,to{transform:translate(0)}50%{transform:translate(15px)}}.login-card{width:100%;max-width:440px;background:#ffffff14;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:24px;padding:44px 36px;border:1px solid rgba(255,255,255,.15);position:relative;z-index:10;box-shadow:0 8px 32px #0000004d,0 2px 8px #0003}.logo-container{margin-bottom:28px;display:flex;justify-content:center;align-items:center}.logo-wrapper{width:80px;height:80px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.2);box-shadow:0 4px 16px #0003}.logo-icon{font-size:36px}.login-title{font-size:28px;font-weight:800;margin-bottom:8px;color:#fff;text-align:center;letter-spacing:-.5px;line-height:1.2}.login-subtitle{font-size:15px;color:#ffffffb3;text-align:center;margin-bottom:32px;font-weight:400;line-height:1.4}.login-form{display:flex;flex-direction:column;gap:20px}.login-form .form-group{display:flex;flex-direction:column;gap:8px}.login-form .form-group label{font-size:14px;font-weight:600;color:#ffffffd9;letter-spacing:.3px}.login-form .form-group input{width:100%;padding:14px 18px;border:1.5px solid rgba(255,255,255,.2);border-radius:16px;font-size:16px;color:#fff;background:#ffffff1a;transition:all .25s ease;box-sizing:border-box;outline:none;font-weight:500}.login-form .form-group input::placeholder{color:#fff6;font-weight:400}.login-form .form-group input:focus{border-color:#3b82f6;background:#ffffff26;box-shadow:0 0 0 3px #3b82f633,0 4px 12px #3b82f626}.login-form .form-group input:disabled{opacity:.5;cursor:not-allowed}.error-message{padding:12px 16px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:12px;color:#fca5a5;font-size:14px;text-align:center;font-weight:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.submit-button{width:100%;padding:16px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;border-radius:16px;font-size:17px;font-weight:700;cursor:pointer;transition:all .25s ease;margin-top:4px;display:flex;align-items:center;justify-content:center;gap:8px;letter-spacing:.3px;box-shadow:0 4px 16px #3b82f666,0 2px 8px #3b82f64d}.submit-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1e40af);box-shadow:0 6px 24px #3b82f680,0 2px 12px #3b82f64d;transform:translateY(-1px)}.submit-button:active:not(:disabled){transform:translateY(0)}.submit-button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.forgot-password-link{margin-top:4px;text-align:right}.forgot-password-link a{color:#fff9;text-decoration:none;font-size:13px;font-weight:500;transition:color .2s ease}.forgot-password-link a:hover{color:#60a5fa;text-decoration:underline}@media (max-width: 768px){.login-container{padding:16px}.login-card{padding:36px 28px}.login-title{font-size:26px}.login-subtitle{font-size:14px;margin-bottom:28px}.decorative-circle-1{width:250px;height:250px;top:-90px;right:-90px}.decorative-circle-2{width:170px;height:170px;bottom:-45px;left:-45px}}@media (max-width: 480px){.login-container{padding:12px}.login-card{padding:28px 20px;border-radius:20px}.login-title{font-size:22px}.login-subtitle{font-size:13px;margin-bottom:24px}.logo-container{margin-bottom:20px}.logo-wrapper{width:60px;height:60px}.logo-icon{font-size:26px}.login-form{gap:16px}.login-form .form-group input{padding:12px 16px;font-size:16px;border-radius:14px}.submit-button{padding:14px;font-size:16px;border-radius:14px}.mode-toggle{margin-top:20px;font-size:13px}.decorative-circle-1{width:160px;height:160px;top:-60px;right:-60px}.decorative-circle-2{width:120px;height:120px;bottom:-30px;left:-30px}.decorative-circle-3{display:none}}@media (max-width: 360px){.login-card{padding:24px 16px;border-radius:16px}.login-title{font-size:20px}.logo-wrapper{width:52px;height:52px}.logo-icon{font-size:22px}}.forgot-password-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e3a5f 40%,#1e40af);padding:20px;position:relative;overflow:hidden}.forgot-password-container .decorative-circle-1{position:absolute;width:300px;height:300px;border-radius:50%;background:#3b82f61a;top:-100px;right:-100px;z-index:0;animation:fpFloatCircle1 8s ease-in-out infinite}.forgot-password-container .decorative-circle-2{position:absolute;width:200px;height:200px;border-radius:50%;background:#60a5fa14;bottom:-50px;left:-50px;z-index:0;animation:fpPulseCircle 6s ease-in-out infinite}.forgot-password-container .decorative-circle-3{position:absolute;width:150px;height:150px;border-radius:50%;background:#2563eb1a;top:40%;left:-30px;z-index:0;animation:fpFloatCircle3 10s ease-in-out infinite}@keyframes fpFloatCircle1{0%,to{transform:translateY(0)}50%{transform:translateY(20px)}}@keyframes fpPulseCircle{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes fpFloatCircle3{0%,to{transform:translate(0)}50%{transform:translate(15px)}}.forgot-password-card{width:100%;max-width:440px;background:#ffffff14;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:24px;padding:44px 36px;border:1px solid rgba(255,255,255,.15);position:relative;z-index:10;box-shadow:0 8px 32px #0000004d,0 2px 8px #0003}.forgot-password-card .logo-container{margin-bottom:28px;display:flex;justify-content:center;align-items:center}.forgot-password-card .logo-wrapper{width:80px;height:80px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.2);box-shadow:0 4px 16px #0003}.forgot-password-card .logo-icon{font-size:36px}.forgot-password-title{font-size:28px;font-weight:800;margin-bottom:8px;color:#fff;text-align:center;letter-spacing:-.5px;line-height:1.2}.forgot-password-subtitle{font-size:15px;color:#ffffffb3;text-align:center;margin-bottom:32px;font-weight:400;line-height:1.4}.forgot-password-form{display:flex;flex-direction:column;gap:20px}.forgot-password-form .form-group{display:flex;flex-direction:column;gap:8px}.forgot-password-form .form-group label{font-size:14px;font-weight:600;color:#ffffffd9;letter-spacing:.3px}.forgot-password-form .form-group input{width:100%;padding:14px 18px;border:1.5px solid rgba(255,255,255,.2);border-radius:16px;font-size:16px;color:#fff;background:#ffffff1a;transition:all .25s ease;box-sizing:border-box;outline:none;font-weight:500}.forgot-password-form .form-group input::placeholder{color:#fff6;font-weight:400}.forgot-password-form .form-group input:focus{border-color:#3b82f6;background:#ffffff26;box-shadow:0 0 0 3px #3b82f633,0 4px 12px #3b82f626}.forgot-password-form .form-group input:disabled{opacity:.5;cursor:not-allowed}.forgot-password-card .error-message{padding:12px 16px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:12px;color:#fca5a5;font-size:14px;text-align:center;font-weight:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.forgot-password-card .submit-button{width:100%;padding:16px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;border-radius:16px;font-size:17px;font-weight:700;cursor:pointer;transition:all .25s ease;margin-top:4px;display:flex;align-items:center;justify-content:center;gap:8px;letter-spacing:.3px;box-shadow:0 4px 16px #3b82f666,0 2px 8px #3b82f64d}.forgot-password-card .submit-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1e40af);box-shadow:0 6px 24px #3b82f680,0 2px 12px #3b82f64d;transform:translateY(-1px)}.forgot-password-card .submit-button:active:not(:disabled){transform:translateY(0)}.forgot-password-card .submit-button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.forgot-password-footer{margin-top:24px;text-align:center;font-size:14px}.back-link{color:#3b82f6;text-decoration:none;font-weight:600;transition:color .2s ease}.back-link:hover{color:#60a5fa;text-decoration:underline}.success-icon{text-align:center;font-size:48px;margin-bottom:16px}.forgot-password-info{font-size:14px;color:#ffffffb3;text-align:center;margin-bottom:20px;line-height:1.5}@media (max-width: 768px){.forgot-password-container{padding:16px}.forgot-password-card{padding:36px 28px}.forgot-password-title{font-size:24px}}.verify-reset-otp-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e3a5f 40%,#1e40af);padding:20px;position:relative;overflow:hidden}.verify-reset-otp-container .decorative-circle-1{position:absolute;width:300px;height:300px;border-radius:50%;background:#3b82f61a;top:-100px;right:-100px;z-index:0;animation:vrFloatCircle1 8s ease-in-out infinite}.verify-reset-otp-container .decorative-circle-2{position:absolute;width:200px;height:200px;border-radius:50%;background:#60a5fa14;bottom:-50px;left:-50px;z-index:0;animation:vrPulseCircle 6s ease-in-out infinite}.verify-reset-otp-container .decorative-circle-3{position:absolute;width:150px;height:150px;border-radius:50%;background:#2563eb1a;top:40%;left:-30px;z-index:0;animation:vrFloatCircle3 10s ease-in-out infinite}@keyframes vrFloatCircle1{0%,to{transform:translateY(0)}50%{transform:translateY(20px)}}@keyframes vrPulseCircle{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes vrFloatCircle3{0%,to{transform:translate(0)}50%{transform:translate(15px)}}.verify-reset-otp-card{width:100%;max-width:440px;background:#ffffff14;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:24px;padding:44px 36px;border:1px solid rgba(255,255,255,.15);position:relative;z-index:10;box-shadow:0 8px 32px #0000004d,0 2px 8px #0003}.verify-reset-otp-card .logo-container{margin-bottom:28px;display:flex;justify-content:center;align-items:center}.verify-reset-otp-card .logo-wrapper{width:80px;height:80px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.2);box-shadow:0 4px 16px #0003}.verify-reset-otp-card .logo-icon{font-size:36px}.verify-reset-otp-title{font-size:28px;font-weight:800;margin-bottom:8px;color:#fff;text-align:center;letter-spacing:-.5px;line-height:1.2}.verify-reset-otp-subtitle{font-size:15px;color:#ffffffb3;text-align:center;margin-bottom:32px;font-weight:400;line-height:1.4}.verify-reset-otp-form{display:flex;flex-direction:column;gap:20px}.verify-reset-otp-card .error-message{padding:12px 16px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:12px;color:#fca5a5;font-size:14px;text-align:center;font-weight:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.verify-reset-otp-card .submit-button{width:100%;padding:16px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;border-radius:16px;font-size:17px;font-weight:700;cursor:pointer;transition:all .25s ease;margin-top:4px;display:flex;align-items:center;justify-content:center;gap:8px;letter-spacing:.3px;box-shadow:0 4px 16px #3b82f666,0 2px 8px #3b82f64d}.verify-reset-otp-card .submit-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1e40af);box-shadow:0 6px 24px #3b82f680,0 2px 12px #3b82f64d;transform:translateY(-1px)}.verify-reset-otp-card .submit-button:active:not(:disabled){transform:translateY(0)}.verify-reset-otp-card .submit-button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.otp-input-group{display:flex;gap:10px;justify-content:center;margin-bottom:8px}.otp-input-box{width:48px;height:56px;text-align:center;font-size:24px;font-weight:700;font-family:SF Mono,Menlo,Monaco,Courier New,monospace;border:2px solid rgba(255,255,255,.25);border-radius:12px;background:#ffffff1a;color:#fff;outline:none;transition:all .2s ease;caret-color:#3b82f6}.otp-input-box:focus{border-color:#3b82f6;background:#ffffff2e;box-shadow:0 0 0 3px #3b82f640,0 4px 12px #3b82f633;transform:translateY(-1px)}.otp-input-box:disabled{opacity:.5;cursor:not-allowed}.otp-input-box::-webkit-outer-spin-button,.otp-input-box::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.otp-input-box[type=text]{-moz-appearance:textfield}.otp-resend-section{text-align:center;margin-top:20px;font-size:14px}.otp-resend-text{color:#fff9}.otp-resend-cooldown{color:#fff6;font-weight:500}.otp-resend-link{background:none;border:none;color:#3b82f6;font-weight:600;cursor:pointer;font-size:14px;padding:0;transition:color .2s ease}.otp-resend-link:hover:not(:disabled){color:#60a5fa;text-decoration:underline}.otp-resend-link:disabled{opacity:.5;cursor:not-allowed}.verify-reset-otp-footer{margin-top:24px;text-align:center;font-size:14px}.verify-reset-otp-footer .back-link{color:#3b82f6;text-decoration:none;font-weight:600;transition:color .2s ease}.verify-reset-otp-footer .back-link:hover{color:#60a5fa;text-decoration:underline}@media (max-width: 768px){.verify-reset-otp-container{padding:16px}.verify-reset-otp-card{padding:36px 28px}.verify-reset-otp-title{font-size:24px}.otp-input-box{width:42px;height:48px;font-size:20px}.otp-input-group{gap:8px}}.reset-password-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e3a5f 40%,#1e40af);padding:20px;position:relative;overflow:hidden}.reset-password-container .decorative-circle-1{position:absolute;width:300px;height:300px;border-radius:50%;background:#3b82f61a;top:-100px;right:-100px;z-index:0;animation:rpFloatCircle1 8s ease-in-out infinite}.reset-password-container .decorative-circle-2{position:absolute;width:200px;height:200px;border-radius:50%;background:#60a5fa14;bottom:-50px;left:-50px;z-index:0;animation:rpPulseCircle 6s ease-in-out infinite}.reset-password-container .decorative-circle-3{position:absolute;width:150px;height:150px;border-radius:50%;background:#2563eb1a;top:40%;left:-30px;z-index:0;animation:rpFloatCircle3 10s ease-in-out infinite}@keyframes rpFloatCircle1{0%,to{transform:translateY(0)}50%{transform:translateY(20px)}}@keyframes rpPulseCircle{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes rpFloatCircle3{0%,to{transform:translate(0)}50%{transform:translate(15px)}}.reset-password-card{width:100%;max-width:440px;background:#ffffff14;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:24px;padding:44px 36px;border:1px solid rgba(255,255,255,.15);position:relative;z-index:10;box-shadow:0 8px 32px #0000004d,0 2px 8px #0003}.reset-password-card .logo-container{margin-bottom:28px;display:flex;justify-content:center;align-items:center}.reset-password-card .logo-wrapper{width:80px;height:80px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.2);box-shadow:0 4px 16px #0003}.reset-password-card .logo-icon{font-size:36px}.reset-password-title{font-size:28px;font-weight:800;margin-bottom:8px;color:#fff;text-align:center;letter-spacing:-.5px;line-height:1.2}.reset-password-subtitle{font-size:15px;color:#ffffffb3;text-align:center;margin-bottom:32px;font-weight:400;line-height:1.4}.reset-password-form{display:flex;flex-direction:column;gap:20px}.reset-password-form .form-group{display:flex;flex-direction:column;gap:8px}.reset-password-form .form-group label{font-size:14px;font-weight:600;color:#ffffffd9;letter-spacing:.3px}.reset-password-form .form-group input{width:100%;padding:14px 18px;border:1.5px solid rgba(255,255,255,.2);border-radius:16px;font-size:16px;color:#fff;background:#ffffff1a;transition:all .25s ease;box-sizing:border-box;outline:none;font-weight:500}.reset-password-form .form-group input::placeholder{color:#fff6;font-weight:400}.reset-password-form .form-group input:focus{border-color:#3b82f6;background:#ffffff26;box-shadow:0 0 0 3px #3b82f633,0 4px 12px #3b82f626}.reset-password-form .form-group input:disabled{opacity:.5;cursor:not-allowed}.reset-password-card .error-message{padding:12px 16px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:12px;color:#fca5a5;font-size:14px;text-align:center;font-weight:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.reset-password-card .submit-button{width:100%;padding:16px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;border-radius:16px;font-size:17px;font-weight:700;cursor:pointer;transition:all .25s ease;margin-top:4px;display:flex;align-items:center;justify-content:center;gap:8px;letter-spacing:.3px;box-shadow:0 4px 16px #3b82f666,0 2px 8px #3b82f64d}.reset-password-card .submit-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1e40af);box-shadow:0 6px 24px #3b82f680,0 2px 12px #3b82f64d;transform:translateY(-1px)}.reset-password-card .submit-button:active:not(:disabled){transform:translateY(0)}.reset-password-card .submit-button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.reset-password-footer{margin-top:24px;text-align:center;font-size:14px}.reset-password-footer .back-link{color:#3b82f6;text-decoration:none;font-weight:600;transition:color .2s ease}.reset-password-footer .back-link:hover{color:#60a5fa;text-decoration:underline}.reset-password-card .success-icon{text-align:center;font-size:48px;margin-bottom:16px}.reset-password-info{font-size:14px;color:#ffffffb3;text-align:center;margin-bottom:20px;line-height:1.5}@media (max-width: 768px){.reset-password-container{padding:16px}.reset-password-card{padding:36px 28px}.reset-password-title{font-size:24px}}.rejection-info{margin-bottom:8px}.rejection-info-text{font-size:.9rem;color:var(--text-secondary);margin-bottom:4px}.rejection-machine-name{font-size:1.05rem;font-weight:700;color:var(--text-primary);padding:8px 12px;background:var(--background-secondary);border-radius:var(--radius);border:1px solid var(--border-light)}.dashboard{padding:24px}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px}.dashboard-header h1{font-size:1.75rem;font-weight:800;color:var(--text-primary);margin:0 0 8px}.kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:32px}.kpi-card{background:var(--surface);border-radius:var(--radius-xl);padding:24px;display:flex;align-items:center;gap:20px;box-shadow:var(--shadow-md);border:1px solid var(--border);transition:all .3s ease}.kpi-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl);border-color:var(--primary-light)}.kpi-icon{width:52px;height:52px;border-radius:var(--radius-lg);background:var(--background-secondary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.kpi-content{flex:1;min-width:0}.kpi-value{font-size:1.75rem;font-weight:800;color:var(--text-primary);line-height:1;margin-bottom:4px}.kpi-title{font-size:.875rem;color:var(--text-secondary);font-weight:600}.kpi-subtitle{font-size:.75rem;color:var(--text-tertiary);margin-top:2px}.dashboard-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}.dashboard-column{min-width:0;display:flex}.dashboard-column>.queue-card{width:100%;display:flex;flex-direction:column}.dashboard-column>.queue-card>.queue-list,.dashboard-column>.queue-card>.queue-empty{flex:1}.queue-card{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);border:1px solid var(--border);overflow:hidden}.queue-card-header{padding:20px 24px;border-bottom:1px solid var(--border);background:var(--background-secondary);height:100px;display:flex;flex-direction:column;justify-content:center}.queue-card-title-group{display:flex;align-items:center;gap:12px;margin-bottom:4px}.queue-card-title-group h3{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0}.queue-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 8px;border-radius:var(--radius-full);background:var(--gradient-primary);color:#fff;font-size:.75rem;font-weight:700}.queue-list{max-height:260px;min-height:0;overflow-y:auto}.queue-list::-webkit-scrollbar{width:8px}.queue-list::-webkit-scrollbar-track{background:var(--background-secondary);border-radius:4px}.queue-list::-webkit-scrollbar-thumb{background:var(--border-dark);border-radius:4px}.queue-list::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.queue-item{display:flex;gap:16px;padding:16px 24px;border-bottom:1px solid var(--border-light)}.queue-item:last-child{border-bottom:none}.queue-item-order{width:28px;height:28px;border-radius:var(--radius-full);background:var(--gradient-primary);color:#fff;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.queue-item-body{flex:1;min-width:0}.queue-item-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px}.queue-item-name{font-size:.95rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default}.queue-item-date{font-size:.75rem;color:var(--text-tertiary);white-space:nowrap;flex-shrink:0}.queue-item-details{display:flex;align-items:center;gap:12px;font-size:.8rem;color:var(--text-secondary);margin-bottom:10px}.queue-item-actions{display:flex;gap:8px}.action-btn:disabled{opacity:.5;cursor:not-allowed}.queue-empty{text-align:center;padding:48px 24px;color:var(--text-tertiary)}.queue-empty svg{margin-bottom:16px}.queue-empty p{font-size:1rem;font-weight:600;color:var(--text-secondary);margin-bottom:4px}.queue-empty span{font-size:.85rem}.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;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:20px}.modal-content{background:var(--surface);border-radius:var(--radius-xl);box-shadow:0 25px 80px #0003;width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border)}.modal-header h3{font-size:1.15rem;font-weight:700;color:var(--text-primary);margin:0}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--text-tertiary);cursor:pointer;padding:4px 8px;border-radius:var(--radius);transition:all .2s ease;line-height:1}.modal-close:hover{background:var(--background-secondary);color:var(--text-primary)}.modal-body{padding:24px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border);background:var(--background-secondary)}@media (max-width: 768px){.modal-overlay{padding:16px;align-items:flex-end}.modal-content{max-width:100%;border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:85vh}.modal-header{padding:16px 20px}.modal-header h3{font-size:1.05rem}.modal-body{padding:20px}.modal-footer{padding:14px 20px;flex-wrap:wrap}.modal-footer .btn{flex:1;justify-content:center}.queue-list{max-height:210px}.queue-item-top{flex-direction:column;align-items:flex-start;gap:4px}.queue-item-actions{flex-wrap:wrap}}@media (max-width: 480px){.modal-overlay{padding:0}.modal-content{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:90vh}.modal-header{padding:14px 16px}.modal-header h3{font-size:1rem}.modal-body{padding:16px}.modal-footer{padding:12px 16px;gap:8px}.modal-footer .btn{font-size:.85rem;padding:8px 14px}}@media (max-width: 1024px){.dashboard-columns{grid-template-columns:1fr}}@media (max-width: 768px){.dashboard-header{flex-direction:column;gap:16px}.dashboard-header h1{font-size:1.5rem}.kpi-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.kpi-card{padding:20px;gap:16px}.kpi-card:hover{transform:none;box-shadow:var(--shadow-md);border-color:var(--border)}.kpi-icon{width:44px;height:44px}.kpi-value{font-size:1.5rem}.queue-item{padding:12px 16px;gap:12px}.queue-card-header{padding:16px}.queue-item-top{flex-direction:column;align-items:flex-start;gap:4px}.queue-item-actions{flex-wrap:wrap}.queue-list{max-height:400px}}@media (max-width: 480px){.dashboard-header h1{font-size:1.25rem}.kpi-grid{grid-template-columns:1fr;gap:12px}.kpi-card{padding:16px;gap:12px}.kpi-icon{width:40px;height:40px}.kpi-value{font-size:1.35rem}.queue-item{padding:10px 14px}.queue-card-header{padding:14px}.queue-card-title-group h3{font-size:1rem}.queue-item-name{font-size:.9rem}.queue-item-actions .btn{flex:1;justify-content:center;font-size:.8rem;padding:6px 10px}}.datatable-wrapper{width:100%}.datatable-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:var(--text-secondary)}.datatable-spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:datatable-spin .8s linear infinite;margin-bottom:16px}@keyframes datatable-spin{to{transform:rotate(360deg)}}.datatable-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:var(--error)}.datatable-error p{margin-top:12px;font-size:14px;color:var(--text-secondary)}.datatable-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;background:var(--surface);border-radius:var(--radius-lg);border:2px dashed var(--border)}.datatable-empty h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:16px 0 4px}.datatable-empty p{font-size:14px;color:var(--text-secondary);margin:0}.datatable-bulk-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;margin-bottom:12px;background:#3b82f60d;border:1px solid rgba(59,130,246,.2);border-radius:var(--radius-md);animation:datatable-fadeIn .2s ease}@keyframes datatable-fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.datatable-bulk-info{font-size:13px;font-weight:600;color:var(--primary)}.datatable-bulk-actions{display:flex;gap:8px;align-items:center}.datatable-table-container{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior:contain;position:relative}.datatable-table{width:100%;border-collapse:collapse}.datatable-table thead{background:var(--bg-secondary);border-bottom:1px solid var(--border)}.datatable-th{padding:12px 16px;text-align:left;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;-webkit-user-select:none;user-select:none}.datatable-th-sortable{cursor:pointer;transition:color .15s ease}.datatable-th-sortable:hover{color:var(--primary)}.datatable-th-content{display:flex;align-items:center;gap:4px}.datatable-th-checkbox{width:48px;padding:12px 8px;text-align:center}.datatable-th-expand{width:40px;padding:12px 4px}.datatable-td{padding:14px 16px;font-size:14px;color:var(--text-primary);border-bottom:1px solid var(--border-light);vertical-align:middle}.datatable-td-checkbox{width:48px;padding:14px 8px;text-align:center;border-bottom:1px solid var(--border-light)}.datatable-td-expand{width:40px;padding:14px 4px;border-bottom:1px solid var(--border-light);text-align:center}.datatable-tr:last-child .datatable-td,.datatable-tr:last-child .datatable-td-checkbox,.datatable-tr:last-child .datatable-td-expand{border-bottom:none}.datatable-tr:hover .datatable-td,.datatable-tr:hover .datatable-td-checkbox,.datatable-tr:hover .datatable-td-expand{background:var(--bg-hover)}.datatable-tr-clickable{cursor:pointer}.datatable-tr-selected .datatable-td,.datatable-tr-selected .datatable-td-checkbox,.datatable-tr-selected .datatable-td-expand{background:#3b82f60a}.datatable-tr-expanded .datatable-td-expanded{padding:0;border-bottom:1px solid var(--border-light);background:var(--bg-secondary)}.datatable-expand-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;cursor:pointer;color:var(--text-secondary);border-radius:4px;transition:all .15s ease}.datatable-expand-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.datatable-checkbox{width:16px;height:16px;cursor:pointer;accent-color:var(--primary);border-radius:3px}.datatable-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding:12px 4px;flex-wrap:wrap}.datatable-pagination-info{font-size:13px;color:var(--text-secondary);font-weight:500}.datatable-pagination-limit{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary)}.datatable-limit-select{padding:4px 8px;font-size:13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);cursor:pointer;outline:none}.datatable-limit-select:focus{border-color:var(--primary)}.datatable-pagination-controls{display:flex;align-items:center;gap:4px}.datatable-page-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.datatable-page-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--primary);border-color:var(--primary)}.datatable-page-btn:disabled{opacity:.4;cursor:not-allowed}.datatable-page-info{font-size:13px;color:var(--text-secondary);font-weight:500;padding:0 8px;white-space:nowrap}.datatable-th.center,.datatable-td.center{text-align:center}.datatable-th.right,.datatable-td.right{text-align:right}@media (max-width: 768px){.datatable-pagination{flex-direction:column;align-items:center;gap:12px}.datatable-pagination-controls{order:-1}.datatable-th,.datatable-td{padding:10px 12px}.datatable-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.datatable-table{min-width:600px}.datatable-bulk-bar{flex-direction:column;gap:8px;align-items:stretch}.datatable-bulk-actions{justify-content:flex-end}.datatable-pagination-limit{width:100%;justify-content:center}}@media (max-width: 480px){.datatable-th,.datatable-td{padding:8px 10px;font-size:13px}.datatable-th-checkbox,.datatable-td-checkbox{width:36px;padding:8px 4px}.datatable-th-expand,.datatable-td-expand{width:32px;padding:8px 2px}.datatable-page-btn{width:28px;height:28px;font-size:12px}.datatable-pagination-info{font-size:12px}.datatable-loading,.datatable-empty{padding:48px 16px}}.vending-machines-page{padding:24px;max-width:1200px;margin:0 auto}.status-tabs{display:flex;gap:4px;margin-bottom:20px;background:var(--bg-secondary, #f3f4f6);border-radius:var(--radius-lg);padding:4px;overflow-x:auto}.status-tab{display:flex;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;color:var(--text-secondary);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;white-space:nowrap;font-family:inherit}.status-tab:hover{color:var(--text-primary);background:#ffffff80}.status-tab.active{color:var(--primary);background:#fff;box-shadow:0 1px 3px #0000001a}.tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;font-size:12px;font-weight:700;background:var(--bg-secondary, #e5e7eb);color:var(--text-secondary)}.status-tab.active .tab-count{background:#3b82f61a;color:var(--primary)}.machine-name-cell{display:flex;align-items:center;gap:10px}.machine-thumb{width:36px;height:36px;border-radius:8px;object-fit:cover;flex-shrink:0;background:var(--bg-secondary)}.machine-thumb-placeholder{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);color:var(--text-secondary);flex-shrink:0}.machine-address{font-weight:500;color:var(--text-primary);line-height:1.3}.cell-id{font-family:SF Mono,Fira Code,monospace;font-size:13px;color:var(--text-secondary)}.status-badge-cell{display:inline-flex;align-items:center;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600;letter-spacing:.3px;border:1px solid}.machine-actions-cell{display:flex;gap:6px}.btn-success{color:#22c55e;background:transparent;border:1px solid transparent}.btn-success:hover:not(:disabled){background:#22c55e1a;border-color:#22c55e33}.btn-danger-ghost{color:#ef4444;background:transparent;border:1px solid transparent}.btn-danger-ghost:hover:not(:disabled){background:#ef44441a;border-color:#ef444433}.btn-spinner-sm{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:vm-spin .6s linear infinite}@keyframes vm-spin{to{transform:rotate(360deg)}}.rejection-modal{max-width:520px}.rejection-info{margin-bottom:20px}.rejection-info-text{font-size:14px;color:var(--text-secondary);margin:0 0 8px}.rejection-machine-name{font-size:16px;font-weight:700;color:var(--text-primary);margin:0;padding:12px 16px;background:var(--bg-secondary);border-radius:var(--radius-md)}.form-textarea{width:100%;padding:12px;font-size:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);resize:vertical;font-family:inherit;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}.form-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f626}.char-count{text-align:right;font-size:12px;color:var(--text-secondary);margin-top:4px}@media (max-width: 768px){.vending-machines-page{padding:16px}.page-header-content{flex-direction:column}.page-title{font-size:20px}.status-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;gap:2px}.status-tab{padding:8px 14px;font-size:13px}.machine-actions-cell{flex-direction:column;gap:4px}.machine-actions-cell .btn{width:100%;justify-content:center}.machine-name-cell{min-width:180px}}@media (max-width: 480px){.vending-machines-page{padding:12px}.page-title{font-size:18px}.page-subtitle{font-size:13px}.status-tab{padding:6px 10px;font-size:12px}.tab-count{min-width:18px;height:18px;font-size:10px;padding:0 4px}.machine-actions-cell .btn{font-size:.8rem;padding:6px 10px}}.vm-detail-page{padding:24px;max-width:1200px;margin:0 auto}.back-link{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;font-size:14px;font-weight:600;color:var(--text-secondary);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;margin-bottom:20px;font-family:inherit}.back-link:hover{color:var(--primary);background:#3b82f60d;transform:translate(-2px)}.detail-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.detail-header-row .back-link{margin-bottom:0}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;gap:12px}.loading-spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:vm-detail-spin .8s linear infinite;margin-bottom:8px}@keyframes vm-detail-spin{to{transform:rotate(360deg)}}.loading-state p{font-size:15px;color:var(--text-secondary);margin:0}.error-state h3{font-size:18px;font-weight:700;color:var(--text-primary);margin:0}.error-state p{font-size:14px;color:var(--text-secondary);margin:0}.vm-info-card{background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--border);overflow:hidden;margin-bottom:24px}.vm-info-top{display:flex;gap:24px;padding:24px;border-bottom:1px solid var(--border-light)}.vm-main-image{width:120px;height:120px;border-radius:var(--radius-lg);object-fit:cover;flex-shrink:0;background:var(--bg-secondary)}.vm-image-placeholder{width:120px;height:120px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);color:var(--text-secondary);flex-shrink:0}.vm-info-header{flex:1;display:flex;flex-direction:column;justify-content:center}.vm-title{font-size:22px;font-weight:700;color:var(--text-primary);margin:0 0 8px}.vm-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.vm-id{font-size:13px;color:var(--text-secondary);font-family:SF Mono,Fira Code,monospace}.vm-status-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:700;letter-spacing:.3px}.vm-info-card-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;padding:12px 32px;background:var(--bg-subtle);border-top:1px solid var(--border)}.vm-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;align-self:flex-start;margin-top:4px}.btn-success{background:#22c55e;color:#fff}.btn-success:hover:not(:disabled){background:#16a34a}.vm-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:0;padding:0}.vm-info-item{display:flex;flex-direction:column;gap:4px;padding:16px 24px;border-bottom:1px solid var(--border-light);border-right:1px solid var(--border-light)}.vm-info-item:nth-child(2n){border-right:none}.vm-info-item-full{grid-column:1 / -1;border-right:none}.vm-info-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.vm-info-value{font-size:14px;color:var(--text-primary);font-weight:500}.vm-info-value-error{color:#ef4444}.gmaps-link{display:inline-flex;align-items:center;gap:6px;color:var(--primary);text-decoration:none;font-weight:600;font-size:13px;padding:4px 10px;border-radius:var(--radius-md);transition:all .2s ease}.gmaps-link:hover{background:#3b82f614;color:var(--primary-dark);text-decoration:none}.vm-section-card{background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--border);overflow:hidden;margin-bottom:24px}.vm-section-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-light);gap:16px}.vm-section-title-group{display:flex;align-items:center;gap:12px}.vm-section-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:#3b82f614;color:var(--primary);flex-shrink:0}.vm-section-title{font-size:16px;font-weight:700;color:var(--text-primary);margin:0}.vm-section-subtitle{font-size:13px;color:var(--text-secondary);margin:2px 0 0}.vm-section-actions{display:flex;gap:8px;flex-shrink:0}.vm-section-body{padding:0}.product-name-cell{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--text-primary)}.badge-unavailable{display:inline-flex;padding:2px 8px;border-radius:8px;font-size:11px;font-weight:600;background:#ef44441a;color:#ef4444}.cell-price{font-weight:600;color:var(--text-primary);font-family:SF Mono,Fira Code,monospace}.cell-desc{font-size:13px;color:var(--text-secondary);max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.cell-text{font-size:13px;color:var(--text-secondary)}.star-rating{display:inline-flex;gap:2px;align-items:center}.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;font-size:14px;font-weight:600;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all .2s ease;text-decoration:none;white-space:nowrap;font-family:inherit}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-icon:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn-spinner-sm{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:vm-btn-spin .6s linear infinite}@keyframes vm-btn-spin{to{transform:rotate(360deg)}}.form-group{margin-bottom:16px}.form-input,.form-textarea{width:100%;padding:10px 12px;font-size:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box;font-family:inherit}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f626}.form-textarea{resize:vertical}.form-checkbox{display:flex;align-items:center}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-primary);cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer}.required{color:#ef4444}.reply-review-info{background:var(--bg-secondary);border-radius:var(--radius-md);padding:16px;margin-bottom:20px}.reply-review-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.reply-review-user{font-size:14px;font-weight:600;color:var(--text-primary)}.reply-review-comment{font-size:14px;color:var(--text-secondary);margin:0;line-height:1.5;font-style:italic}@media (max-width: 768px){.vm-detail-page{padding:16px}.vm-info-top{flex-direction:column;align-items:center;text-align:center;padding:20px;gap:16px}.vm-main-image,.vm-image-placeholder{width:100px;height:100px}.vm-title{font-size:18px}.vm-meta{justify-content:center}.vm-info-header{align-items:center;text-align:center}.vm-header-actions{flex-wrap:wrap;justify-content:center;width:100%}.vm-header-actions .btn{flex:1;justify-content:center}.vm-info-grid{grid-template-columns:1fr}.vm-info-item{border-right:none;padding:12px 20px}.vm-section-header{flex-direction:column;align-items:flex-start;padding:16px 20px}.vm-section-actions{width:100%}.vm-section-actions .btn{flex:1;justify-content:center}.vm-section-title{font-size:15px}.action-buttons{flex-wrap:wrap}.product-name-cell{min-width:140px}}@media (max-width: 480px){.vm-detail-page{padding:12px}.vm-info-top{padding:16px}.vm-main-image,.vm-image-placeholder{width:80px;height:80px}.vm-title{font-size:16px}.vm-info-item{padding:10px 16px}.vm-section-header{padding:14px 16px}.vm-section-body{overflow-x:auto}.vm-section-actions{flex-wrap:wrap;gap:4px}.vm-section-actions .btn{font-size:.8rem;padding:6px 10px}.modal{margin:10px;max-width:100%}.modal-header{padding:16px 20px 0}.modal-header h2{font-size:16px}.modal-body{padding:16px 20px}.modal-footer{padding:12px 20px;flex-wrap:wrap}.modal-footer .btn{flex:1;justify-content:center}}.cell-clickable{cursor:pointer;transition:color .2s ease}.cell-clickable:hover{color:var(--primary);text-decoration:underline}.review-detail-info{display:flex;flex-direction:column;gap:12px}.review-detail-header{display:flex;align-items:center;gap:10px;margin-bottom:4px}.review-detail-user{font-size:14px;font-weight:600;color:var(--text-primary)}.review-detail-content{display:flex;flex-direction:column;gap:6px}.review-detail-label{font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin:0}.review-detail-text{font-size:14px;line-height:1.6;color:var(--text-primary);margin:0;white-space:pre-wrap;word-break:break-word}.review-detail-text-full{font-size:15px}.review-detail-divider{height:1px;background:var(--border);margin:8px 0}.documents-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;padding:20px 24px}.document-card{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-light);overflow:hidden;transition:box-shadow .2s ease}.document-card:hover{box-shadow:0 2px 8px #00000014}.document-card-preview{width:100%;height:140px;overflow:hidden;cursor:pointer;background:var(--bg-primary);display:flex;align-items:center;justify-content:center}.document-card-image{width:100%;height:100%;object-fit:cover}.document-card-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--text-tertiary)}.document-card-info{padding:12px;display:flex;flex-direction:column;gap:4px}.document-card-type{display:flex;align-items:center;gap:6px}.document-type-icon{font-size:16px}.document-type-label{font-size:13px;font-weight:600;color:var(--text-primary)}.document-card-filename{font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-card-notes{font-size:12px;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic}.document-card-date{font-size:11px;color:var(--text-tertiary)}.document-card-actions{display:flex;gap:4px;padding:8px 12px;border-top:1px solid var(--border-light);justify-content:flex-end}.document-preview-content{display:flex;align-items:center;justify-content:center;background:var(--bg-primary);border-radius:var(--radius-md);overflow:hidden;min-height:200px;max-height:400px;margin-bottom:16px}.document-preview-image{max-width:100%;max-height:400px;object-fit:contain}.document-preview-placeholder{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px;color:var(--text-tertiary)}.document-preview-placeholder p{margin:0;font-size:14px}.document-preview-meta{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--bg-secondary);border-radius:var(--radius-md)}.document-preview-meta-row{display:flex;gap:8px;font-size:13px}.document-preview-meta-label{font-weight:600;color:var(--text-secondary);min-width:80px;flex-shrink:0}.document-preview-meta-value{color:var(--text-primary);word-break:break-word}.empty-state{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 24px;color:var(--text-tertiary)}.empty-state p{margin:0;font-size:14px}.users-page{padding:24px;max-width:1200px;margin:0 auto}.page-header{margin-bottom:24px}.page-header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.page-title-section{flex:1}.page-title{font-size:24px;font-weight:700;color:var(--text-primary);margin:0 0 8px}.page-subtitle{font-size:14px;color:var(--text-secondary);margin:0;line-height:1.5}.alert svg{flex-shrink:0}.filters-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}.search-form{display:flex;align-items:center;gap:8px;flex:1;min-width:280px;position:relative}.search-icon{position:absolute;left:12px;color:var(--text-secondary);pointer-events:none}.search-input{flex:1;padding:9px 12px 9px 38px;font-size:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-primary);transition:border-color .2s ease,box-shadow .2s ease}.search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6366f126}.search-input::placeholder{color:var(--text-secondary);opacity:.7}.filter-group{display:flex;align-items:center;gap:8px;flex-shrink:0}.filter-select{padding:9px 12px;font-size:13px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-primary);cursor:pointer;transition:border-color .2s ease;min-width:180px;max-width:180px;width:180px;box-sizing:border-box}.filter-select:focus{outline:none;border-color:var(--primary)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:var(--text-secondary)}.loading-spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:users-spin .8s linear infinite;margin-bottom:16px}@keyframes users-spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;color:var(--text-secondary)}.empty-state h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:12px 0 4px}.empty-state p{font-size:14px;color:var(--text-secondary);margin:0}.table-container{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior:contain;position:relative}.data-table{width:100%;border-collapse:collapse;min-width:700px}.data-table th,.data-table td{white-space:nowrap}.data-table thead{background:var(--bg-secondary);border-bottom:1px solid var(--border)}.data-table th{padding:12px 16px;text-align:left;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.data-table td{padding:14px 16px;font-size:14px;color:var(--text-primary);border-bottom:1px solid var(--border-light);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--bg-hover)}.data-table tbody tr.clickable-row{cursor:pointer}.data-table tbody tr.clickable-row:hover{background:#3b82f60d}.user-cell{display:flex;align-items:center;gap:12px}.user-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px;flex-shrink:0}.user-info{display:flex;flex-direction:column;gap:2px}.user-name{font-weight:600;font-size:14px;color:var(--text-primary)}.user-username{font-size:12px;color:var(--text-secondary)}.cell-email{font-size:13px;color:var(--text-secondary)}.role-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600;letter-spacing:.3px;border:1px solid;min-width:80px;text-align:center}.status-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600;letter-spacing:.3px}.status-active{background:#22c55e1a;color:#22c55e}.status-inactive{background:#ef44441a;color:#ef4444}.action-buttons{display:flex;gap:4px}.btn-secondary{background:var(--background-secondary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border-light)}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--background-secondary);color:var(--text-primary)}.btn-ghost:disabled{opacity:.45;cursor:not-allowed}.btn-sm{padding:6px 12px;font-size:13px}.btn-icon{padding:6px;border-radius:6px;color:var(--text-secondary);background:transparent;border:none}.btn-icon:hover:not(:disabled){background:var(--background-secondary);color:var(--text-primary)}.btn-icon.btn-warning:hover:not(:disabled){background:#f59e0b1a;color:#f59e0b}.btn-icon.btn-success:hover:not(:disabled){background:#22c55e1a;color:#22c55e}.btn-icon.btn-danger:hover:not(:disabled){background:#ef44441a;color:#ef4444}.action-btn-success:hover:not(:disabled){background:#22c55e14;border-color:#22c55e}.action-btn-danger:hover:not(:disabled){background:#ef444414;border-color:#ef4444}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px;padding:16px}.page-info{font-size:14px;color:var(--text-secondary);font-weight:500}.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;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;border:1px solid var(--border)}.modal-lg{max-width:640px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 0}.modal-header h2{font-size:18px;font-weight:700;color:var(--text-primary);margin:0}.modal-close{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .2s}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-body{padding:20px 24px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--border-light)}.delete-warning{display:flex;align-items:flex-start;gap:12px}.delete-warning svg{flex-shrink:0;margin-top:2px}.delete-warning p{margin:0;font-size:14px;line-height:1.5}.form-group{margin-bottom:16px;flex:1}.form-label{display:block;font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:6px}.form-input,.form-select{width:100%;padding:10px 12px;font-size:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box;font-family:inherit}.form-input:focus,.form-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6366f126}.form-select{cursor:pointer}.form-row{display:flex;gap:16px}@media (max-width: 768px){.users-page{padding:16px}.page-header-content{flex-direction:column}.page-title{font-size:20px}.filters-bar{flex-direction:column;align-items:stretch}.search-form{min-width:unset}.filter-group{flex-wrap:nowrap;width:100%}.filter-group .filter-select{flex:1;min-width:0}.data-table{font-size:13px}.data-table th,.data-table td{padding:10px 12px}.form-row{flex-direction:column;gap:0}.modal{max-width:100%;margin:10px}.user-cell{min-width:160px}.action-buttons{flex-wrap:nowrap}.pagination{flex-wrap:wrap;gap:8px}}@media (max-width: 480px){.users-page{padding:12px}.page-title{font-size:18px}.page-subtitle{font-size:13px}.data-table th,.data-table td{padding:8px 10px;font-size:12px}.user-avatar{width:28px;height:28px;font-size:11px}.user-name{font-size:13px}.action-buttons .btn-icon{width:24px;height:24px;padding:4px}.modal{margin:8px}.modal-header{padding:16px 20px 0}.modal-header h2{font-size:16px}.modal-body{padding:16px 20px}.modal-footer{padding:12px 20px;flex-wrap:wrap}.modal-footer .btn{flex:1;justify-content:center}}.detail-page{padding:24px;max-width:1200px;margin:0 auto}.detail-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:var(--text-secondary)}.detail-spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:detail-spin .8s linear infinite;margin-bottom:16px}.detail-spinner-sm{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:detail-spin .8s linear infinite}@keyframes detail-spin{to{transform:rotate(360deg)}}.detail-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.detail-error h2{font-size:20px;font-weight:700;color:var(--text-primary);margin:16px 0 8px}.detail-error p{font-size:14px;color:var(--text-secondary);margin-bottom:24px}.detail-header{display:flex;align-items:center;justify-content:flex-end;margin-bottom:20px}.detail-user-card{background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--border);box-shadow:var(--shadow-md);margin-bottom:24px;overflow:hidden}.detail-user-card-main{display:flex;align-items:center;gap:24px;padding:28px 32px 20px}.detail-user-avatar{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:24px;flex-shrink:0;box-shadow:0 4px 12px #00000026}.detail-user-info{flex:1;min-width:0}.detail-user-name{font-size:22px;font-weight:700;color:var(--text-primary);margin:0 0 4px}.detail-user-email{font-size:14px;color:var(--text-secondary);margin:0 0 12px}.detail-user-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.detail-user-tag{font-size:13px;color:var(--text-tertiary);font-weight:500}.detail-user-card-actions{display:flex;gap:8px;align-items:center;padding:12px 32px;background:var(--bg-subtle);border-top:1px solid var(--border)}.action-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;font-size:.8125rem;font-weight:600;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;border:1px solid transparent;font-family:inherit;white-space:nowrap;line-height:1}.action-btn svg{flex-shrink:0}.action-btn-primary{background:var(--surface);color:var(--text-primary);border-color:var(--border)}.action-btn-primary:hover{background:var(--bg-hover);border-color:var(--primary);color:var(--primary)}.action-btn-danger{background:transparent;color:#ef4444;border-color:#ef444440}.action-btn-danger:hover{background:#ef444414;border-color:#ef4444}.action-btn-success{background:transparent;color:#22c55e;border-color:#22c55e40}.action-btn-success:hover{background:#22c55e14;border-color:#22c55e}.status-select-wrapper{position:relative;display:inline-flex}.status-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:7px 32px 7px 12px;font-size:.8125rem;font-weight:600;color:var(--text-primary);cursor:pointer;outline:none;transition:border-color .2s,box-shadow .2s;min-width:180px;font-family:inherit;line-height:1}.status-select:hover{border-color:var(--primary)}.status-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #6366f126}.status-select-wrapper:after{content:"▾";position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:.75rem;color:var(--text-tertiary);pointer-events:none}.detail-grid{display:flex;flex-direction:column;gap:20px}.detail-section-card{background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--border);box-shadow:var(--shadow-md);overflow:hidden}.detail-section-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 24px;border-bottom:1px solid var(--border-light);gap:16px}.detail-section-title-group{display:flex;align-items:flex-start;gap:12px}.detail-section-icon{width:36px;height:36px;border-radius:var(--radius-md);background:var(--background-secondary);display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.detail-section-title{font-size:16px;font-weight:700;color:var(--text-primary);margin:0;padding-top:6px}.detail-section-subtitle{font-size:13px;color:var(--text-secondary);margin:2px 0 0}.detail-section-actions{display:flex;gap:8px;flex-shrink:0}.detail-section-body{padding:20px 24px}.notif-table-wrapper{height:260px;min-height:0;overflow-y:auto;display:flex;flex-direction:column;-webkit-overflow-scrolling:touch;touch-action:pan-y}.notif-table-wrapper .datatable-wrapper{display:flex;flex-direction:column;flex:1;min-height:0}.notif-table-wrapper .datatable-table-container{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}.notif-table-wrapper::-webkit-scrollbar{width:8px}.notif-table-wrapper::-webkit-scrollbar-track{background:var(--background-secondary);border-radius:4px}.notif-table-wrapper::-webkit-scrollbar-thumb{background:var(--border-dark);border-radius:4px}.notif-table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.detail-section-loading{display:flex;align-items:center;gap:12px;padding:24px;justify-content:center;color:var(--text-secondary);font-size:14px}.detail-section-error{padding:24px;text-align:center;color:var(--error);font-size:14px}.detail-section-empty{padding:32px 24px;text-align:center;color:var(--text-secondary);font-size:14px}.detail-section-empty p{margin:0}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.info-field{display:flex;flex-direction:column;gap:4px}.info-label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.info-value{font-size:14px;color:var(--text-primary);font-weight:500}.status-badge-custom{display:inline-flex;align-items:center;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600;letter-spacing:.3px}.cell-mono{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:13px;color:var(--text-secondary)}.notif-cell{display:flex;flex-direction:column;gap:2px}.notif-title{font-size:14px;font-weight:500;color:var(--text-primary)}.notif-title.notif-unread{font-weight:700;color:var(--text-primary)}.notif-message{font-size:12px;color:var(--text-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notif-read-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.notif-read-badge.read{background:#6b72801a;color:#6b7280}.notif-read-badge.unread{background:#3b82f61a;color:#3b82f6}.notif-actions-bar{display:flex;gap:8px}.action-buttons{display:flex;gap:4px;justify-content:center}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.btn-icon:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-icon.btn-danger-icon:hover{background:#ef44441a;color:#ef4444}.settings-list{display:flex;flex-direction:column;gap:4px}.toggle-field{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-radius:var(--radius-md);gap:16px}.toggle-field:hover{background:var(--background-secondary)}.toggle-field-info{display:flex;flex-direction:column;gap:2px;flex:1}.toggle-field-label{font-size:14px;font-weight:600;color:var(--text-primary)}.toggle-field-desc{font-size:12px;color:var(--text-secondary)}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--border);border-radius:24px;transition:all .3s ease}.toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:all .3s ease;box-shadow:0 1px 3px #0003}.toggle-switch input:checked+.toggle-slider{background:var(--primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.toggle-switch input:disabled+.toggle-slider{opacity:.5;cursor:not-allowed}.confirm-delete-icon{display:flex;justify-content:center;margin-bottom:16px}.alert{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-md);margin-bottom:20px;font-size:14px}.alert-error{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.2)}.alert-success{background:#22c55e1a;color:#22c55e;border:1px solid rgba(34,197,94,.2)}.subscription-info{display:flex;flex-direction:column;gap:12px}.subscription-status-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--background-secondary);border-radius:var(--radius-md);margin-bottom:4px}.subscription-status-label{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px}.subscription-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:700;letter-spacing:.3px}.subscription-badge.inactive{background:#6b72801a;color:#6b7280}.subscription-detail-row{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-radius:var(--radius-md);transition:background .15s ease}.subscription-detail-row:hover{background:var(--background-secondary)}.subscription-detail-label{font-size:13px;color:var(--text-secondary);font-weight:500}.subscription-detail-value{font-size:14px;color:var(--text-primary);font-weight:600}@media (max-width: 768px){.detail-page{padding:16px}.detail-user-card{flex-direction:column;text-align:center;padding:24px 20px;gap:16px}.detail-user-avatar{width:60px;height:60px;font-size:20px}.detail-user-name{font-size:18px}.detail-user-meta{justify-content:center}.detail-user-actions{width:100%;justify-content:center;flex-wrap:wrap}.detail-user-actions .btn{flex:1;justify-content:center}.status-select{min-width:140px}.info-grid{grid-template-columns:1fr}.detail-section-header{flex-direction:column;padding:16px 20px}.detail-section-actions{width:100%;flex-wrap:wrap}.detail-section-actions .btn{flex:1;justify-content:center}.detail-section-body{padding:16px 20px}.detail-section-title{font-size:15px}.toggle-field{flex-direction:column;align-items:flex-start;padding:12px 16px}.notif-actions-bar{flex-wrap:wrap}.notif-actions-bar .btn{flex:1;justify-content:center}}@media (max-width: 480px){.detail-page{padding:12px}.detail-user-card{padding:20px 16px}.detail-user-avatar{width:52px;height:52px;font-size:18px}.detail-user-name{font-size:16px}.detail-user-email{font-size:13px}.detail-section-header,.detail-section-body{padding:14px 16px}.info-grid{gap:12px}.info-field{gap:2px}.info-value{font-size:13px}.toggle-field{padding:10px 14px}.toggle-field-label{font-size:13px}.detail-section-actions .btn{font-size:.8rem;padding:6px 10px}}.notif-table-wrapper{max-height:320px;overflow-y:auto!important;overflow-x:hidden;padding-right:4px;touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important}.notif-table-wrapper table,.notif-table-wrapper .table-responsive,.notif-table-wrapper .data-table-container{touch-action:pan-y!important}.notif-table-wrapper .notif-cell,.notif-table-wrapper td{pointer-events:auto}.profile-page{padding:32px;max-width:1000px;margin:0 auto}.profile-loading,.profile-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 32px;text-align:center}.profile-loading .loading-spinner{width:40px;height:40px;border:3px solid var(--border-light);border-top-color:var(--primary);border-radius:50%;animation:profile-spin .8s linear infinite;margin-bottom:16px}@keyframes profile-spin{to{transform:rotate(360deg)}}.profile-error .error-icon{font-size:48px;margin-bottom:16px}.profile-error h3{margin-bottom:8px;color:var(--text-primary)}.profile-error p{color:var(--text-secondary);margin-bottom:24px}.profile-header-card{background:var(--surface);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-md);margin-bottom:32px}.profile-header-bg{display:none}.profile-header-content{display:flex;align-items:center;gap:24px;padding:32px}.profile-avatar-large{width:96px;height:96px;border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;border:4px solid var(--surface);box-shadow:var(--shadow-lg);flex-shrink:0}.profile-header-info{flex:1}.profile-name{font-size:1.5rem;font-weight:700;color:#111827;margin:0}.profile-email{color:#374151;margin:4px 0 0;font-size:.95rem;font-weight:500}.profile-meta{display:flex;align-items:center;gap:12px;margin-top:8px;flex-wrap:wrap}.profile-role-badge{display:inline-block;padding:4px 12px;border-radius:var(--radius-full);background:#6366f11a;color:var(--primary);font-size:.8rem;font-weight:600}.profile-app-id{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary);font-size:.8rem;font-family:SF Mono,Fira Code,monospace}.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:24px}.profile-card{background:var(--surface);border-radius:var(--radius-xl);padding:24px;box-shadow:var(--shadow-md)}.profile-card-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border-light)}.profile-card-header svg{color:var(--primary);flex-shrink:0}.profile-card-header h3{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0}.profile-card-body{display:flex;flex-direction:column;gap:16px}.profile-field{display:flex;flex-direction:column;gap:4px}.profile-field-label{font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.profile-field-value{font-size:.95rem;color:var(--text-primary);font-weight:500}.profile-field-value.mono{font-family:SF Mono,Fira Code,monospace;font-size:.85rem}.role-tag{display:inline-block;padding:2px 10px;border-radius:var(--radius-full);background:#6366f11a;color:var(--primary);font-size:.85rem;font-weight:600}.password-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:.85rem;font-weight:500;color:var(--text-primary)}.form-control{padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-lg);font-size:.9rem;color:var(--text-primary);background:var(--surface);transition:border-color .2s,box-shadow .2s;outline:none}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px #6366f11a}.form-control:disabled{opacity:.6;cursor:not-allowed}.password-message{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--radius-lg);font-size:.85rem}.password-message.error{background:#ef44441a;color:var(--danger);border:1px solid rgba(239,68,68,.2)}.password-message.success{background:#10b9811a;color:var(--success);border:1px solid rgba(16,185,129,.2)}@media (max-width: 768px){.profile-page{padding:16px}.profile-header-content{flex-direction:column;align-items:center;text-align:center;padding:24px 20px;gap:16px}.profile-avatar-large{width:80px;height:80px;font-size:28px}.profile-name{font-size:1.25rem}.profile-meta{justify-content:center}.profile-grid{grid-template-columns:1fr;gap:16px}.profile-card{padding:20px}.profile-card-header h3{font-size:1rem}}@media (max-width: 480px){.profile-page{padding:12px}.profile-header-content{padding:20px 16px}.profile-avatar-large{width:64px;height:64px;font-size:24px;border-width:3px}.profile-name{font-size:1.1rem}.profile-email{font-size:.85rem}.profile-card{padding:16px}.profile-card-header{margin-bottom:16px;padding-bottom:12px}.profile-card-header h3{font-size:.95rem}.profile-field-value{font-size:.9rem}.password-form .btn{width:100%;justify-content:center}}.settings-page{padding:32px;max-width:900px;margin:0 auto}.settings-page .page-header{margin-bottom:32px}.settings-page .page-header h1{font-size:28px;font-weight:700;color:#111827;margin:0 0 8px}.settings-page .page-subtitle{font-size:15px;color:#6b7280;margin:0}.settings-grid{display:flex;flex-direction:column;gap:16px}.settings-card{display:flex;align-items:center;gap:20px;background:#fff;border:1px solid #E5E7EB;border-radius:16px;padding:24px;transition:all .2s ease;cursor:default}.settings-card:not(.disabled){cursor:pointer}.settings-card:not(.disabled):hover{border-color:#bfdbfe;box-shadow:0 4px 12px #3b82f61a;transform:translateY(-1px)}.settings-card.disabled{opacity:.7}.settings-card-icon{flex-shrink:0;width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.settings-card-content{flex:1;min-width:0}.settings-card-content h3{font-size:16px;font-weight:600;color:#111827;margin:0 0 4px}.settings-card-content p{font-size:14px;color:#6b7280;margin:0;line-height:1.5}.settings-card-action{flex-shrink:0}.btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:transparent;border:1px solid #E5E7EB;border-radius:8px;color:#3b82f6;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-ghost:hover{background:#eff6ff;border-color:#bfdbfe}.badge-coming-soon{display:inline-block;padding:6px 14px;background:#f3f4f6;border-radius:20px;color:#9ca3af;font-size:13px;font-weight:500;white-space:nowrap}@media (max-width: 768px){.settings-page{padding:16px}.settings-page .page-header h1{font-size:22px}.settings-card{padding:20px;gap:16px}.settings-card-icon{width:40px;height:40px}.settings-card-content h3{font-size:15px}.settings-card-content p{font-size:13px}}@media (max-width: 480px){.settings-page{padding:12px}.settings-page .page-header h1{font-size:18px}.settings-page .page-subtitle{font-size:13px}.settings-card{padding:16px;gap:12px;flex-wrap:wrap}.settings-card-icon{width:36px;height:36px}.settings-card-content{min-width:calc(100% - 52px)}.settings-card-content h3{font-size:14px}.settings-card-action{width:100%;margin-top:4px}.settings-card-action .btn-ghost,.settings-card-action .badge-coming-soon{width:100%;text-align:center;justify-content:center}}.broadcast-page{padding:24px;max-width:1200px;margin:0 auto}.broadcast-page .compose-card{background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--border);box-shadow:var(--shadow-md);overflow:hidden}.broadcast-page .compose-header{display:flex;align-items:center;gap:12px;padding:20px 28px;border-bottom:1px solid var(--border);background:var(--background-secondary)}.broadcast-page .compose-header h2{font-size:15px;font-weight:600;color:var(--text-primary);margin:0}.broadcast-page .compose-body{padding:28px}.broadcast-page .form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media (max-width: 640px){.broadcast-page .form-row{grid-template-columns:1fr}}.broadcast-page .form-group{margin-bottom:20px}.broadcast-page .form-group:last-child{margin-bottom:0}.broadcast-page .form-label{display:block;font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:6px}.broadcast-page .form-label .required{color:var(--error);margin-left:2px}.broadcast-page .form-input,.broadcast-page .form-select{width:100%;padding:10px 14px;font-size:14px;font-family:inherit;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color .2s ease,box-shadow .2s ease;outline:none;box-sizing:border-box}.broadcast-page .form-input:focus,.broadcast-page .form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.broadcast-page .form-input.error,.broadcast-page .form-select.error{border-color:var(--error);box-shadow:0 0 0 3px #ef44441a}.broadcast-page .form-select{cursor:pointer}.broadcast-page .form-textarea{resize:vertical;min-height:100px;line-height:1.5}.broadcast-page .form-error{font-size:12px;color:var(--error);margin-top:4px}.broadcast-page .form-hint{display:block;font-size:12px;color:var(--text-secondary);margin-top:4px}.broadcast-page .submit-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 28px;font-size:14px;font-weight:600;font-family:inherit;color:#fff;background:var(--primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background .2s ease,transform .15s ease}.broadcast-page .submit-btn:hover:not(:disabled){background:var(--primary-hover, #2563eb);transform:translateY(-1px)}.broadcast-page .submit-btn:active:not(:disabled){transform:translateY(0)}.broadcast-page .submit-btn:disabled{opacity:.6;cursor:not-allowed}.broadcast-page .spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:broadcast-spin .6s linear infinite}@keyframes broadcast-spin{to{transform:rotate(360deg)}}.broadcast-page .result-banner{margin-top:20px;border-radius:var(--radius-lg);border:1px solid;overflow:hidden}.broadcast-page .result-banner.success{background:#22c55e0f;border-color:#22c55e40}.broadcast-page .result-banner.error{background:#ef44440f;border-color:#ef444440}.broadcast-page .result-banner-header{display:flex;align-items:center;gap:10px;padding:16px 24px;border-bottom:1px solid var(--border-light)}.broadcast-page .result-banner-header.success{color:#16a34a}.broadcast-page .result-banner-header.error{color:#dc2626}.broadcast-page .result-banner-header h3{font-size:14px;font-weight:600;margin:0;color:var(--text-primary)}.broadcast-page .result-banner-body{padding:16px 24px}.broadcast-page .result-stats{display:flex;gap:32px;flex-wrap:wrap}.broadcast-page .result-stat{display:flex;flex-direction:column;gap:2px}.broadcast-page .result-stat-label{font-size:12px;color:var(--text-secondary);font-weight:500}.broadcast-page .result-stat-value{font-size:22px;font-weight:700;color:var(--text-primary)}.broadcast-page .result-stat-value.success{color:#16a34a}.broadcast-page .result-stat-value.error{color:#dc2626}.broadcast-page .result-detail{font-size:13px;color:var(--text-secondary);margin-top:8px;padding-top:8px;border-top:1px solid var(--border-light)}.broadcast-page .alert{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-md);margin-bottom:20px;font-size:14px}.broadcast-page .alert-error{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.2)}.broadcast-page .alert-success{background:#22c55e1a;color:#22c55e;border:1px solid rgba(34,197,94,.2)}.broadcast-page .alert svg{flex-shrink:0}@media (max-width: 768px){.broadcast-page{padding:16px}.broadcast-page .compose-body{padding:20px}.broadcast-page .compose-header{padding:16px 20px}.broadcast-page .result-stats{gap:20px}}@media (max-width: 480px){.broadcast-page{padding:12px}.broadcast-page .compose-body{padding:16px}.broadcast-page .result-stat-value{font-size:18px}}.subscriptions-page{padding:24px;max-width:1200px;margin:0 auto}.subscriptions-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.stat-card{background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--border);padding:20px 24px;display:flex;align-items:center;gap:16px;box-shadow:var(--shadow-sm);transition:box-shadow .2s ease}.stat-card:hover{box-shadow:var(--shadow-md)}.stat-icon{width:44px;height:44px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon.total{background:#6366f11f;color:#6366f1}.stat-icon.active{background:#22c55e1f;color:#22c55e}.stat-icon.inactive{background:#ef44441f;color:#ef4444}.stat-value{font-size:1.75rem;font-weight:800;color:var(--text-primary);line-height:1;margin-bottom:4px}.stat-label{font-size:.85rem;color:var(--text-secondary);font-weight:500}.subscriptions-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px;flex-wrap:wrap}.subscriptions-toolbar-left{display:flex;align-items:center;gap:12px}.subscriptions-count{font-size:14px;color:var(--text-secondary);font-weight:500}.subscriptions-count strong{color:var(--text-primary)}.filter-group{display:flex;gap:6px;background:var(--background-secondary);padding:4px;border-radius:var(--radius-lg);border:1px solid var(--border)}.filter-btn{padding:6px 14px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.filter-btn:hover{color:var(--text-primary);background:#ffffff80}.filter-btn.active{background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow-sm)}.page-header-actions{display:flex;align-items:center;gap:10px}.btn-export{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text-primary);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-export:hover{border-color:var(--primary);color:var(--primary);box-shadow:var(--shadow-sm)}.btn-export:disabled{opacity:.5;cursor:not-allowed;border-color:var(--border);color:var(--text-tertiary)}.subscriptions-card{background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--border);box-shadow:var(--shadow-md);overflow-x:auto;-webkit-overflow-scrolling:touch}.subscriptions-table{width:100%;border-collapse:collapse;min-width:900px}.subscriptions-table th{padding:14px 20px;text-align:left;font-size:12px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;background:var(--background-secondary);border-bottom:1px solid var(--border);white-space:nowrap}.subscriptions-table td{padding:14px 20px;font-size:14px;color:var(--text-primary);border-bottom:1px solid var(--border-light);vertical-align:middle}.subscriptions-table tr:last-child td{border-bottom:none}.subscriptions-table tr:hover td{background:#6366f108}.subscription-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--radius-full);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.subscription-badge.active{background:#22c55e1f;color:#16a34a}.subscription-badge.expired{background:#ef44441a;color:#dc2626}.subscription-badge.cancelled{background:#6b72801a;color:#6b7280}.subscription-badge-dot{width:7px;height:7px;border-radius:50%}.subscription-badge.active .subscription-badge-dot{background:#22c55e}.subscription-badge.expired .subscription-badge-dot{background:#ef4444}.subscription-badge.cancelled .subscription-badge-dot{background:#9ca3af}.cell-date{font-size:13px;color:var(--text-secondary);white-space:nowrap}.cell-vendor{font-weight:600;color:var(--text-primary)}.cell-user-id{font-size:13px;color:var(--text-tertiary);font-family:SF Mono,Fira Code,monospace}.subscriptions-empty{text-align:center;padding:64px 24px;color:var(--text-secondary)}.subscriptions-empty svg{margin-bottom:16px;opacity:.4}.subscriptions-empty h3{font-size:18px;font-weight:700;color:var(--text-primary);margin:0 0 8px}.subscriptions-empty p{font-size:14px;margin:0;line-height:1.5}.subscriptions-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;gap:16px}.subscriptions-loading .spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}.subscriptions-loading p{font-size:14px;color:var(--text-secondary);margin:0}.subscriptions-error{text-align:center;padding:48px 24px}.subscriptions-error .alert{display:inline-flex;align-items:center;gap:10px;padding:14px 20px;border-radius:var(--radius-lg);background:#ef444414;color:#dc2626;border:1px solid rgba(239,68,68,.15);font-size:14px;margin-bottom:16px}.subscriptions-error .btn{padding:8px 20px;border:none;border-radius:var(--radius-md);background:var(--primary);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s ease}.subscriptions-error .btn:hover{background:var(--primary-dark)}.export-toast{position:fixed;bottom:24px;right:24px;display:flex;align-items:center;gap:10px;padding:14px 20px;border-radius:var(--radius-lg);background:#1f2937;color:#fff;font-size:14px;font-weight:600;box-shadow:0 8px 24px #0003;z-index:9999;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 900px){.subscriptions-stats{grid-template-columns:1fr}.subscriptions-toolbar{flex-direction:column;align-items:stretch}.subscriptions-toolbar-left{flex-wrap:wrap}.subscriptions-table th,.subscriptions-table td{padding:10px 14px}}@media (max-width: 640px){.subscriptions-table{font-size:13px}.subscriptions-table th,.subscriptions-table td{padding:8px 12px}.filter-group{flex-wrap:wrap}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg);color:var(--text);line-height:1.4;font-size:14px}#root{min-height:100vh}::-webkit-scrollbar-thumb{background:#0f172a14;border-radius:8px}::-webkit-scrollbar-track{background:transparent}:root{--primary: #3B82F6;--primary-light: #60A5FA;--primary-dark: #1D4ED8;--primary-darker: #1E40AF;--secondary: #10B981;--secondary-light: #34D399;--secondary-dark: #059669;--accent: #F59E0B;--accent-light: #FBBF24;--accent-dark: #D97706;--admin: #8B5CF6;--admin-light: #A78BFA;--admin-dark: #7C3AED;--success: #10B981;--warning: #F59E0B;--error: #EF4444;--info: #3B82F6;--background: #F8FAFC;--background-secondary: #F1F5F9;--surface: #FFFFFF;--surface-secondary: #F9FAFB;--text-primary: #111827;--text-secondary: #6B7280;--text-tertiary: #9CA3AF;--text-inverse: #FFFFFF;--border: #E5E7EB;--border-light: #F3F4F6;--border-dark: #D1D5DB;--header-height: 72px;--sidebar-width: 280px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px rgba(0, 0, 0, .15);--gradient-primary: linear-gradient(135deg, var(--primary-dark), var(--primary));--gradient-admin: linear-gradient(135deg, var(--admin-dark), var(--admin));--gradient-success: linear-gradient(135deg, var(--secondary-dark), var(--secondary));--gradient-warning: linear-gradient(135deg, var(--accent-dark), var(--accent));--gradient-error: linear-gradient(135deg, #DC2626, var(--error));--bg: var(--background);--panel-bg: var(--surface);--muted: var(--text-secondary);--text: var(--text-primary);--danger: var(--error);--glass: rgba(15, 23, 42, .03);--radius: var(--radius-md);--container-gap: 24px;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:var(--text-primary);background-color:var(--background);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--background);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}body{color:var(--text-primary);background-color:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}a{color:var(--primary);text-decoration:none;transition:color .2s ease}a:hover{color:var(--primary-dark)}.container{max-width:1400px;margin:0 auto;padding:0 32px}h1{font-size:2.5rem;font-weight:800;line-height:1.2;color:var(--text-primary);margin-bottom:1.5rem;letter-spacing:-.025em}h2{font-size:2rem;font-weight:700;line-height:1.3;color:var(--text-primary);margin-bottom:1.25rem}h3{font-size:1.5rem;font-weight:600;line-height:1.4;color:var(--text-primary);margin-bottom:1rem}h4{font-size:1.25rem;font-weight:600;line-height:1.4;color:var(--text-primary);margin-bottom:.75rem}p{margin-bottom:1rem;color:var(--text-secondary);line-height:1.6}.text-muted{color:var(--text-tertiary);font-size:.875rem}.text-primary{color:var(--primary)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-error{color:var(--error)}.text-admin{color:var(--primary)}:focus{outline:2px solid var(--primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}.transition{transition:all .2s cubic-bezier(.4,0,.2,1)}.transition-slow{transition:all .3s cubic-bezier(.4,0,.2,1)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--background-secondary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-dark)}
