:root{--primary: #8b5cf6;--primary-dark: #7c3aed;--primary-light: #a78bfa;--secondary: #1e1b4b;--background: #0f0a1e;--surface: #1a1333;--surface-light: #2d2250;--text: #ffffff;--text-secondary: #a5a5c0;--border: #3d3660;--success: #22c55e;--warning: #f59e0b;--error: #ef4444;--info: #3b82f6}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--background);color:var(--text);min-height:100vh}.app-container{display:flex;min-height:100vh}.sidebar{width:260px;background:linear-gradient(180deg,var(--secondary) 0%,var(--surface) 100%);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;height:100vh;z-index:100}.sidebar-header{padding:24px 20px;border-bottom:1px solid var(--border)}.sidebar-header h1{font-size:20px;font-weight:700;background:linear-gradient(135deg,var(--primary-light) 0%,var(--primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:4px}.sidebar-header .role-badge{font-size:12px;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.sidebar-header .role-badge.super-admin{color:var(--warning)}.sidebar-nav{flex:1;padding:16px 12px;overflow-y:auto}.nav-section{margin-bottom:24px}.nav-section-title{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;padding:0 12px;margin-bottom:8px}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;color:var(--text-secondary);text-decoration:none;border-radius:8px;margin-bottom:4px;transition:all .2s ease;font-size:14px;font-weight:500}.nav-item:hover{background:var(--surface-light);color:var(--text)}.nav-item.active{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff}.nav-item .icon{font-size:18px;width:24px;text-align:center}.sidebar-footer{padding:16px;border-top:1px solid var(--border)}.user-info{padding:12px;background:var(--surface-light);border-radius:8px;margin-bottom:12px}.user-info .username{font-weight:600;font-size:14px;margin-bottom:2px}.user-info .email{font-size:12px;color:var(--text-secondary)}.logout-btn{width:100%;padding:10px;background:transparent;border:1px solid var(--border);color:var(--text-secondary);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s ease}.logout-btn:hover{background:var(--error);border-color:var(--error);color:#fff}.main-content{flex:1;margin-left:260px;padding:24px;min-height:100vh;background:var(--background)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}.page-header h1{font-size:28px;font-weight:700;display:flex;align-items:center;gap:12px}.page-header p{color:var(--text-secondary);margin-top:4px;font-size:14px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:24px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;transition:transform .2s ease}.stat-card:hover{transform:translateY(-2px)}.stat-card .icon{font-size:32px;margin-bottom:12px}.stat-card .value{font-size:32px;font-weight:700;margin-bottom:4px}.stat-card .label{color:var(--text-secondary);font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px;margin-bottom:20px}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.card-header h2{font-size:18px;font-weight:600;display:flex;align-items:center;gap:10px}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}.btn-secondary{background:var(--surface-light);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover{background:#dc2626}.btn-success{background:var(--success);color:#fff}.btn-sm{padding:6px 12px;font-size:12px}.form-group label{display:block;font-size:14px;font-weight:500;margin-bottom:8px;color:var(--text-secondary)}.form-control{width:100%;padding:12px 16px;background:var(--background);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:14px;transition:border-color .2s ease}.form-control:focus{outline:none;border-color:var(--primary)}.form-control::placeholder{color:var(--text-secondary)}select.form-control{cursor:pointer}.table th,.table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--border)}.table th{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;background:var(--surface-light)}.table tr:hover td{background:var(--surface-light)}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.badge-success{background:#22c55e33;color:var(--success)}.badge-warning{background:#f59e0b33;color:var(--warning)}.badge-error{background:#ef444433;color:var(--error)}.badge-info{background:#3b82f633;color:var(--info)}.badge-neutral{background:var(--surface-light);color:var(--text-secondary)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-header h2{font-size:18px;font-weight:600}.modal-close{background:none;border:none;color:var(--text-secondary);font-size:24px;cursor:pointer;padding:4px}.modal-close:hover{color:var(--text)}.modal-footer{padding:16px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:12px}.empty-state .icon{font-size:64px;margin-bottom:16px;opacity:.5}.empty-state h3{font-size:20px;margin-bottom:8px}.empty-state p{color:var(--text-secondary);margin-bottom:20px}.loading{display:flex;align-items:center;justify-content:center;min-height:400px;color:var(--text-secondary)}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,var(--background) 0%,var(--secondary) 100%)}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:40px;width:100%;max-width:420px}.auth-header{text-align:center;margin-bottom:32px}.auth-header h1{font-size:28px;font-weight:700;background:linear-gradient(135deg,var(--primary-light) 0%,var(--primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:8px}.auth-header p{color:var(--text-secondary);font-size:14px}.auth-footer{text-align:center;margin-top:24px;color:var(--text-secondary);font-size:14px}.auth-footer a{color:var(--primary);text-decoration:none}.alert{padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.alert-error{background:#ef44441a;border:1px solid var(--error);color:var(--error)}.alert-success{background:#22c55e1a;border:1px solid var(--success);color:var(--success)}.toggle{position:relative;width:50px;height:26px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--surface-light);border-radius:26px;transition:.3s}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s}.toggle input:checked+.toggle-slider{background:var(--primary)}.toggle input:checked+.toggle-slider:before{transform:translate(24px)}@media (max-width: 768px){.sidebar{display:none}.main-content{margin-left:0}.page-header{flex-direction:column;align-items:flex-start;gap:16px}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.auth-box{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:450px;padding:40px}.auth-header{text-align:center;margin-bottom:30px}.auth-header h1{font-size:28px;color:#333;margin-bottom:8px}.auth-header p{color:#666;font-size:14px}.auth-form,.form-group{margin-bottom:20px}.form-group label{display:block;font-weight:600;color:#333;margin-bottom:8px;font-size:14px}.form-group input{width:100%;padding:12px 16px;border:2px solid #e5e7eb;border-radius:8px;font-size:15px;transition:border-color .2s}.error-message{background:#fee2e2;color:#991b1b;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.btn-block{width:100%;padding:14px;font-size:16px;font-weight:600}.trial-info{background:#f0f9ff;border:2px solid #bfdbfe;border-radius:8px;padding:16px;margin-bottom:20px}.trial-info p{margin:4px 0;color:#1e40af;font-size:14px}.auth-footer{text-align:center;padding-top:20px;border-top:1px solid #e5e7eb}.auth-footer p{color:#666;font-size:14px}.auth-footer a{color:#667eea;text-decoration:none;font-weight:600}.auth-footer a:hover{text-decoration:underline}@media (max-width: 480px){.auth-box{padding:30px 20px}.auth-header h1{font-size:24px}}.dashboard-container{display:flex;min-height:100vh;background:#f5f5f5}.dashboard-container .analytics-section{margin-bottom:30px}.dashboard-container .analytics-section h2{margin:0 0 20px;font-size:22px;color:#333}.dashboard-container .charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:25px}.dashboard-container .chart-card{background:#fff;padding:25px;border-radius:12px;box-shadow:0 2px 8px #0000001a}.dashboard-container .chart-card h3{margin:0 0 20px;font-size:16px;color:#333;font-weight:600}.sidebar{width:260px;background:#1a1a1a;color:#fff;display:flex;flex-direction:column;position:fixed;height:100vh}.sidebar-header{padding:24px 20px;border-bottom:1px solid #333}.sidebar-header h2{font-size:20px;margin:0 0 4px;color:#fff}.user-role{font-size:12px;color:#999;margin:0}.sidebar-nav{flex:1;padding:20px 0}.nav-item{display:flex;align-items:center;padding:12px 20px;color:#999;text-decoration:none;transition:all .2s;gap:12px;font-size:15px}.nav-item:hover{background:#2a2a2a;color:#fff}.nav-item.active{background:#667eea;color:#fff}.nav-item span{font-size:18px}.sidebar-footer{padding:20px;border-top:1px solid #333}.btn-logout{width:100%;padding:12px;background:#2a2a2a;color:#fff;border:none;border-radius:8px;font-size:15px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:background .2s}.btn-logout:hover{background:#3a3a3a}.main-content{flex:1;margin-left:260px;padding:32px}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px}.dashboard-header h1{font-size:28px;color:#333;margin:0 0 8px}.dashboard-header p{color:#666;margin:0}.subscription-badge .badge{padding:8px 16px;border-radius:20px;font-size:14px;font-weight:600}.badge.trial{background:#dbeafe;color:#1e40af}.badge.active{background:#d1fae5;color:#065f46}.badge.expired{background:#fee2e2;color:#991b1b}.alert{padding:16px 20px;border-radius:8px;margin-bottom:24px}.alert strong{display:block;margin-bottom:8px}.alert p{margin:8px 0;font-size:14px}.alert-warning{background:#fef3c7;border:2px solid #fbbf24;color:#92400e}.alert-info{background:#dbeafe;border:2px solid #60a5fa;color:#1e3a8a}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:32px}.stat-card{background:#fff;border-radius:12px;padding:24px;display:flex;align-items:center;gap:16px;box-shadow:0 1px 3px #0000001a}.stat-icon{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px}.stat-icon.blue{background:#dbeafe}.stat-icon.green{background:#d1fae5}.stat-icon.purple{background:#e9d5ff}.stat-icon.orange{background:#fed7aa}.stat-content{flex:1}.stat-value{font-size:28px;font-weight:700;color:#333;margin-bottom:4px}.stat-label{font-size:14px;color:#666}.actions-section{margin-bottom:32px}.actions-section h2{font-size:20px;color:#333;margin-bottom:16px}.actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.action-card{background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:20px;text-align:center;cursor:pointer;transition:all .2s}.action-card:hover:not(:disabled){border-color:#667eea;box-shadow:0 4px 12px #667eea26;transform:translateY(-2px)}.action-card:disabled{opacity:.5;cursor:not-allowed}.action-icon{font-size:32px;margin-bottom:12px}.action-title{font-size:16px;font-weight:600;color:#333;margin-bottom:8px}.action-desc{font-size:13px;color:#666}.recent-section{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-header h2{font-size:20px;color:#333;margin:0}.view-all{color:#667eea;text-decoration:none;font-weight:600;font-size:14px}.codes-table table{width:100%;border-collapse:collapse}.codes-table th{text-align:left;padding:12px;background:#f9fafb;font-weight:600;color:#666;font-size:13px}.codes-table td{padding:12px;border-bottom:1px solid #e5e7eb;color:#333;font-size:14px}.code-number{font-family:Courier New,monospace;font-weight:700;color:#667eea;font-size:16px}.status-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:18px;color:#666}@media (max-width: 768px){.sidebar{width:200px}.main-content{margin-left:200px;padding:20px}.stats-grid,.actions-grid{grid-template-columns:1fr}}.portals-container{padding:24px;max-width:1400px;margin:0 auto}.portals-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px}.portals-header h1{margin:0 0 8px;color:#1a1a1a;font-size:28px}.portals-description{color:#666;margin:0;max-width:600px}.empty-state{text-align:center;padding:80px 20px;background:#f9f9f9;border-radius:12px;border:2px dashed #ddd}.empty-icon{font-size:64px;margin-bottom:16px}.empty-state h2{margin:0 0 8px;color:#333}.empty-state p{color:#666;margin-bottom:24px}.portals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:24px}.portal-card{background:#fff;border-radius:12px;border:1px solid #e0e0e0;padding:20px;transition:all .3s ease;box-shadow:0 2px 4px #0000000d}.portal-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.portal-card.inactive{opacity:.7;background:#f9f9f9}.portal-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.portal-status h3{margin:0 0 8px;color:#1a1a1a;font-size:20px}.status-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:600}.status-badge.active{background:#e8f5e9;color:#2e7d32}.status-badge.inactive{background:#ffebee;color:#c62828}.portal-actions{display:flex;gap:8px}.btn-icon{background:transparent;border:none;cursor:pointer;font-size:18px;padding:6px;border-radius:6px;transition:background .2s}.btn-icon:hover{background:#f0f0f0}.portal-info{display:flex;flex-direction:column;gap:12px}.info-item{display:flex;flex-direction:column;gap:4px}.info-label{font-size:12px;color:#999;text-transform:uppercase;font-weight:600;letter-spacing:.5px}.info-value{color:#333;font-size:14px}.server-url{font-family:Courier New,monospace;background:#f5f5f5;padding:6px 10px;border-radius:4px;word-break:break-all;font-size:13px;color:#06c}.codes-count{font-weight:700;color:#06c;font-size:16px}.btn-primary{background:#06c;color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s}.btn-primary:hover{background:#0052a3;transform:translateY(-1px);box-shadow:0 4px 12px #0066cc4d}.btn-secondary{background:#f5f5f5;color:#333;border:1px solid #ddd;padding:10px 20px;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s}.btn-secondary:hover{background:#e0e0e0}.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;animation:fadeIn .2s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:12px;padding:0;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 16px;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;color:#1a1a1a;font-size:22px}.modal-close{background:transparent;border:none;font-size:32px;line-height:1;cursor:pointer;color:#999;transition:color .2s;padding:0;width:32px;height:32px}.modal-close:hover{color:#333}form{padding:24px}.form-group label{display:block;margin-bottom:8px;color:#333;font-weight:600;font-size:14px}.form-group input[type=text],.form-group textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;transition:all .2s;font-family:inherit}.form-group input[type=text]:focus,.form-group textarea:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.form-group input.error{border-color:#d32f2f}.error-message{color:#d32f2f;font-size:13px;display:block;margin-top:6px}.field-hint{color:#999;font-size:12px;display:block;margin-top:6px}.checkbox-group label{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-group input[type=checkbox]{width:18px;height:18px;cursor:pointer}.modal-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:16px;border-top:1px solid #e0e0e0;margin-top:8px}.loading{text-align:center;padding:60px 20px;color:#666;font-size:16px}@media (max-width: 768px){.portals-container{padding:16px}.portals-header{flex-direction:column;gap:16px}.portals-header .btn-primary{align-self:stretch}.portals-grid{grid-template-columns:1fr}.modal-content{width:95%;margin:20px}}.expiry-valid{color:#10b981;font-weight:500}.expiry-expired{color:#ef4444;font-weight:500}.expiry-lifetime{color:#8b5cf6;font-weight:600}.expiry-none{color:#94a3b8;font-style:italic}.info-message,.warning-message{padding:16px;border-radius:8px;margin:16px 0}.info-message{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.warning-message{background:#fef3c7;border:1px solid #fde68a;color:#92400e}.info-message strong,.warning-message strong{display:block;margin-bottom:8px}.info-message p,.warning-message p{margin:0;font-size:14px}.current-expiry-info{background:#f3f4f6;padding:12px 16px;border-radius:6px;margin:16px 0;display:flex;justify-content:space-between;align-items:center}.current-expiry-info strong{color:#374151}.current-expiry-info span{color:#6b7280;font-weight:500}.code-management-container{padding:24px;max-width:1400px;margin:0 auto}.header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.header h1{margin:0 0 8px;color:#333}.subtitle{color:#666;margin:0;font-size:14px}.info-banner{display:flex;gap:12px;background:#e3f2fd;border:1px solid #90caf9;border-radius:8px;padding:16px;margin-bottom:24px}.info-icon{font-size:24px;flex-shrink:0}.info-content{color:#1565c0;font-size:14px;line-height:1.6}.info-content strong{color:#0d47a1}.warning-banner{display:flex;gap:12px;background:#fff3e0;border:1px solid #ffb74d;border-radius:8px;padding:16px;margin-bottom:24px}.warning-icon{font-size:24px;flex-shrink:0}.warning-content{color:#e65100}.warning-content strong{display:block;margin-bottom:4px;color:#bf360c}.warning-content p{margin:0;font-size:14px}.warning-content p .code-value{font-family:Courier New,monospace;font-weight:700;font-size:16px;color:#06c;background:#f0f4ff;padding:4px 8px;border-radius:4px}.warning-content p .portal-info{display:flex;flex-direction:column;gap:4px}.warning-content p .portal-name{font-weight:600;color:#333}.warning-content p .portal-url{font-size:12px;color:#666;font-family:Courier New,monospace}.warning-content p .status-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:600}.warning-content p .status-badge.active{background:#e8f5e9;color:#2e7d32}.warning-content p .status-badge.inactive{background:#ffebee;color:#c62828}.warning-content p .form-group select{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;transition:all .2s;font-family:inherit;background-color:#fff}.warning-content p .form-group select:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.warning-content p .form-group select:disabled{background-color:#f5f5f5;cursor:not-allowed}.warning-content p .form-group input.error{border-color:#d32f2f}.warning-content p .error-message{color:#d32f2f;font-size:13px;display:block;margin-top:6px}.warning-content p .field-hint{color:#999;font-size:12px;display:block;margin-top:6px}.warning-content p .form-error{background:#ffebee;border:1px solid #ef5350;color:#c62828;padding:12px;border-radius:8px;margin-bottom:16px;font-size:14px}.code-management{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 1px 3px #0000001a}.management-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;gap:1rem;flex-wrap:wrap}.management-header h2{font-size:1.5rem;color:#333;margin:0}.btn{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;transition:all .2s;display:inline-flex;align-items:center;gap:.5rem}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.btn-secondary{background:#e5e7eb;color:#374151}.btn-secondary:hover:not(:disabled){background:#d1d5db}.btn-icon{background:none;border:none;font-size:1.2rem;padding:.5rem;border-radius:4px;transition:background .2s}.btn-edit:hover{background:#f3f4f6}.btn-delete:hover{background:#fee2e2}.loading-state{text-align:center;padding:3rem}.spinner{width:50px;height:50px;border:4px solid #f3f4f6;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}.error-banner{background:#fee2e2;color:#991b1b;padding:1rem 1.5rem;border-radius:6px;display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.error-banner button{background:#dc2626;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;font-size:.875rem;font-weight:500}.empty-state{text-align:center;padding:4rem 2rem}.empty-icon{font-size:4rem;margin-bottom:1rem}.empty-state h3{font-size:1.5rem;color:#374151;margin-bottom:.5rem}.empty-state p{color:#6b7280;margin-bottom:2rem}.codes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.code-card{background:#fff;border:2px solid #e5e7eb;border-radius:8px;padding:1.5rem;transition:all .2s}.code-card:hover{border-color:#667eea;box-shadow:0 4px 12px #667eea26}.code-card.inactive{opacity:.6;background:#f9fafb}.code-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.code-display{display:flex;align-items:center;gap:.75rem}.code-number{font-size:2rem;font-weight:700;color:#667eea;font-family:Courier New,monospace}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge.active{background:#d1fae5;color:#065f46}.status-badge.inactive{background:#fee2e2;color:#991b1b}.code-actions{display:flex;gap:.5rem}.code-details{margin-bottom:1rem}.detail-row{display:flex;gap:.5rem;margin-bottom:.5rem;font-size:.875rem}.detail-label{font-weight:600;color:#6b7280;min-width:80px}.detail-value{color:#374151;word-break:break-all}.code-footer{padding-top:1rem;border-top:1px solid #e5e7eb;display:flex;flex-direction:column;gap:.25rem}.footer-item{font-size:.75rem;color:#9ca3af}.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:1rem}.modal{background:#fff;border-radius:12px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h3{font-size:1.25rem;color:#111827;margin:0}.modal-close{background:none;border:none;font-size:1.5rem;color:#9ca3af;padding:.25rem;line-height:1}.modal-close:hover{color:#374151}.modal-form{padding:1.5rem}.form-error{background:#fee2e2;color:#991b1b;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.875rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-weight:500;color:#374151;margin-bottom:.5rem;font-size:.875rem}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input.input-disabled{background:#f3f4f6;cursor:not-allowed}.form-group small{display:block;margin-top:.25rem;color:#6b7280;font-size:.75rem}.form-group-checkbox{margin-bottom:1.5rem}.form-group-checkbox label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.form-group-checkbox input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid #e5e7eb}@media (max-width: 768px){.codes-grid{grid-template-columns:1fr}.management-header{flex-direction:column;align-items:stretch}.modal{max-height:100vh;border-radius:0}}.header-actions{display:flex;gap:12px}.search-filter-bar{display:flex;gap:12px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.search-box{position:relative;flex:1;min-width:250px}.search-box input{width:100%;padding:10px 40px 10px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;transition:border-color .2s}.search-box input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.clear-search{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:18px;color:#9ca3af;cursor:pointer;padding:0 5px}.clear-search:hover{color:#374151}.filter-select{padding:10px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;background:#fff;cursor:pointer;min-width:140px}.filter-select:focus{outline:none;border-color:#667eea}.results-count{color:#6b7280;font-size:14px;white-space:nowrap}.bulk-actions-bar{display:flex;align-items:center;gap:12px;background:#f0f4ff;border:1px solid #c7d2fe;border-radius:8px;padding:12px 16px;margin-bottom:20px}.selection-count{font-weight:600;color:#4f46e5;margin-right:12px}.btn-action{padding:8px 16px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.btn-activate{background:#d1fae5;color:#065f46}.btn-activate:hover{background:#a7f3d0}.btn-deactivate{background:#fee2e2;color:#991b1b}.btn-deactivate:hover{background:#fecaca}.btn-delete{background:#dc2626;color:#fff}.btn-delete:hover{background:#b91c1c}.btn-clear{background:none;border:1px solid #d1d5db;color:#6b7280;padding:8px 16px;border-radius:6px;font-size:13px;cursor:pointer;margin-left:auto}.btn-clear:hover{background:#f9fafb}.checkbox-col{width:40px;text-align:center}.codes-table tbody tr.selected{background:#f0f4ff}.codes-table tbody tr.selected:hover{background:#e0e7ff}.empty-actions{display:flex;gap:12px;justify-content:center}.bulk-modal{max-width:800px;max-height:90vh;overflow-y:auto}.bulk-upload-step,.bulk-preview-step,.bulk-importing-step,.bulk-results-step{padding:24px}.csv-format-info{background:#f3f4f6;border-radius:8px;padding:16px;margin:16px 0}.csv-format-info h4{margin:0 0 12px;color:#374151}.csv-format-info code{display:inline-block;background:#e5e7eb;padding:4px 8px;border-radius:4px;font-family:Courier New,monospace;color:#1f2937}.csv-format-info .example{margin-top:8px;color:#6b7280;font-size:13px}.csv-format-info ul{margin:12px 0 0;padding-left:20px;color:#6b7280}.csv-format-info li{margin:4px 0;font-size:13px}.csv-format-info .limit-note{margin:12px 0 0;color:#d97706;font-weight:500}.file-upload-area{text-align:center;padding:24px;margin:16px 0}.btn-upload{padding:16px 32px;font-size:16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:all .2s}.btn-upload:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-upload:disabled{opacity:.5;cursor:not-allowed;transform:none}.backup-notice{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:#d1fae5;border-radius:8px;color:#065f46;font-size:14px}.preview-summary{margin-bottom:16px}.preview-summary h4{margin:0 0 8px;color:#374151}.preview-summary p{margin:0;color:#6b7280;font-size:14px}.preview-table-container{max-height:300px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:16px}.preview-table{width:100%;border-collapse:collapse}.preview-table th,.preview-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #e5e7eb}.preview-table th{background:#f9fafb;font-weight:600;color:#374151;position:sticky;top:0}.preview-table td{font-size:13px}.preview-table .missing{color:#dc2626;font-style:italic}.preview-note{text-align:center;color:#6b7280;font-size:13px;margin:8px 0}.importing-animation{text-align:center;padding:48px}.importing-animation h3{margin:24px 0 8px;color:#374151}.importing-animation p{margin:0 0 8px;color:#6b7280}.importing-animation .import-note{color:#d97706;font-size:13px}.results-summary{text-align:center;margin-bottom:24px}.results-summary h3{margin:0 0 16px;color:#065f46;font-size:24px}.results-stats{display:flex;justify-content:center;gap:24px}.stat{text-align:center;padding:16px 24px;border-radius:8px;min-width:80px}.stat-total{background:#f3f4f6}.stat-success{background:#d1fae5}.stat-duplicate{background:#fef3c7}.stat-error{background:#fee2e2}.stat-value{display:block;font-size:28px;font-weight:700;color:#374151}.stat-label{display:block;font-size:12px;color:#6b7280;text-transform:uppercase;margin-top:4px}.stat-success .stat-value{color:#065f46}.stat-duplicate .stat-value{color:#92400e}.stat-error .stat-value{color:#991b1b}.results-table-container{max-height:300px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:24px}.results-table{width:100%;border-collapse:collapse}.results-table th,.results-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #e5e7eb}.results-table th{background:#f9fafb;font-weight:600;color:#374151;position:sticky;top:0}.results-table tr.result-success{background:#f0fdf4}.results-table tr.result-duplicate{background:#fffbeb}.results-table tr.result-error{background:#fef2f2}.status-icon{font-size:16px}.generated-code{font-family:Courier New,monospace;font-weight:600;color:#667eea;background:#f0f4ff;padding:2px 8px;border-radius:4px}.error-text{color:#dc2626;font-size:12px}.download-section{text-align:center;padding:16px;background:#f9fafb;border-radius:8px;margin-bottom:16px}.download-section p{margin:0 0 12px;color:#6b7280}.download-buttons{display:flex;gap:12px;justify-content:center}.btn-download{padding:10px 20px;background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.btn-download:hover{background:#f9fafb;border-color:#9ca3af}.codes-table-container{overflow-x:auto;border:1px solid #e5e7eb;border-radius:8px}.codes-table{width:100%;border-collapse:collapse;min-width:900px}.codes-table th,.codes-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #e5e7eb}.codes-table th{background:#f9fafb;font-weight:600;color:#374151;font-size:13px;text-transform:uppercase;letter-spacing:.5px}.codes-table tbody tr:hover{background:#f9fafb}.action-buttons{display:flex;gap:4px}.btn-icon{background:none;border:none;padding:6px 8px;border-radius:4px;cursor:pointer;font-size:16px;transition:background .2s}.btn-icon:hover{background:#f3f4f6}.messages-page{padding:0}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:16px}.header-actions{display:flex;gap:12px;flex-wrap:wrap}.tabs{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap;background:#fff;padding:8px;border-radius:12px;box-shadow:0 2px 8px #0000000f}.tab{padding:10px 20px;background:transparent;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;color:#666;transition:all .2s ease}.tab:hover{background:#f5f5f5;color:#333}.tab.active{background:#667eea;color:#fff}.messages-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.message-card{background:#fff;border:1px solid #e8e8e8;border-left:4px solid #667eea;border-radius:12px;padding:20px;transition:all .3s ease}.message-card:hover{box-shadow:0 6px 20px #0000001a;transform:translateY(-2px)}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.message-type{display:flex;align-items:center;gap:8px}.type-icon{font-size:20px}.type-label{font-size:13px;font-weight:600;color:#666;text-transform:capitalize}.message-status{display:flex;align-items:center;gap:10px}.status-text{font-size:12px;color:#888}.switch{position:relative;display:inline-block;width:44px;height:24px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.3s;border-radius:24px}.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}input:checked+.slider{background-color:#10b981}input:checked+.slider:before{transform:translate(20px)}.message-card h3{margin:0 0 8px;font-size:17px;color:#1a1a2e;line-height:1.4}.message-content{color:#666;font-size:14px;line-height:1.6;margin:0 0 12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.target-info{background:#f0f4ff;padding:10px 14px;border-radius:8px;font-size:13px;color:#667eea;margin-bottom:12px;font-weight:500}.ack-info{display:flex;align-items:center;gap:12px;margin-bottom:16px}.ack-badge{background:#e8f5e9;color:#2e7d32;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.ack-badge:hover{background:#c8e6c9}.requires-ack{background:#fff3e0;color:#f57c00;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:500}.message-meta{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid #f0f0f0}.message-date{font-size:12px;color:#999}.message-actions{display:flex;gap:8px}.btn-icon{background:#f5f5f5;border:none;width:36px;height:36px;border-radius:8px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.btn-icon:hover{background:#e0e0e0;transform:scale(1.05)}.btn-icon.delete:hover{background:#ffebee}.modal.large{max-width:700px}.modal-close{background:none;border:none;font-size:28px;cursor:pointer;color:#999;line-height:1;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.checkbox-label{display:flex!important;align-items:center;gap:10px;cursor:pointer}.checkbox-label input{width:18px;height:18px;cursor:pointer}.codes-selector{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;max-height:200px;overflow-y:auto;padding:12px;background:#f9f9f9;border-radius:8px;border:1px solid #e0e0e0}.code-checkbox{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff;border-radius:6px;border:1px solid #e0e0e0;cursor:pointer;font-size:13px;transition:all .2s ease}.code-checkbox:hover{border-color:#667eea}.code-checkbox input:checked+span{color:#667eea;font-weight:500}.message-preview{margin-top:24px;padding:20px;background:#f9f9f9;border-radius:12px}.message-preview h4{margin:0 0 16px;font-size:14px;color:#666}.preview-box{background:linear-gradient(135deg,#1a1a2e,#16213e);padding:24px;border-radius:12px;text-align:center;color:#fff}.preview-box strong{display:block;margin-bottom:12px;font-size:18px}.preview-box p{margin:0 0 20px;font-size:14px;line-height:1.6;opacity:.9}.preview-btn{background:#667eea;color:#fff;border:none;padding:12px 40px;border-radius:8px;font-size:15px;font-weight:600;cursor:default}.ack-summary{text-align:center;margin-bottom:24px}.ack-summary h3{margin:0 0 20px;color:#1a1a2e}.ack-stats{display:flex;justify-content:center;gap:32px;margin-bottom:16px}.ack-stat{display:flex;flex-direction:column;align-items:center}.ack-stat .value{font-size:32px;font-weight:700;color:#667eea}.ack-stat .label{font-size:13px;color:#888}.progress-bar{height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px;transition:width .5s ease}.ack-list h4{margin:0 0 16px;font-size:14px;color:#666}.ack-items{display:grid;gap:8px;max-height:250px;overflow-y:auto}.ack-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f9f9f9;border-radius:8px}.ack-code{font-weight:600;color:#667eea}.ack-username{color:#666;font-size:14px}.no-acks{text-align:center;padding:40px;color:#888}.expiry-filter{margin-bottom:24px;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.expiry-filter label{font-weight:500;color:#333}.expiring-list{max-height:400px;overflow-y:auto}.table th,.table td{padding:12px 16px;text-align:left;border-bottom:1px solid #eee}.table tr:hover{background:#f9f9f9}.table tr.urgent{background:#fff3e0}.days-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:500;background:#e8f5e9;color:#2e7d32}.days-badge.warning{background:#fff3e0;color:#f57c00}.days-badge.critical{background:#ffebee;color:#c62828}.no-expiring{text-align:center;padding:60px 20px;color:#2e7d32;font-size:16px}.reminder-result{text-align:center;padding:20px}.result-icon{font-size:64px;margin-bottom:16px}.reminder-result h3{margin:0 0 24px;color:#1a1a2e}.reminder-breakdown{display:flex;justify-content:center;gap:24px}.reminder-stat{display:flex;flex-direction:column;align-items:center;padding:16px 24px;background:#f9f9f9;border-radius:12px}.reminder-stat .label{font-size:13px;color:#888;margin-bottom:8px}.reminder-stat .value{font-size:28px;font-weight:700;color:#667eea}.btn{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:8px}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-warning{background:linear-gradient(135deg,#fd7e14,#e65100);color:#fff}.btn-sm{padding:6px 14px;font-size:13px}.empty-state p{margin:0 0 24px;color:#888}@media (max-width: 768px){.page-header{flex-direction:column;align-items:stretch}.header-actions{justify-content:flex-start}.stats-row{grid-template-columns:repeat(2,1fr)}.messages-grid,.form-row{grid-template-columns:1fr}.tabs{overflow-x:auto;flex-wrap:nowrap}.ack-stats{flex-wrap:wrap}.reminder-breakdown{flex-direction:column;gap:12px}}.settings-tabs{display:flex;gap:10px;margin-bottom:30px;border-bottom:2px solid #e0e0e0}.settings-tabs .tab{padding:12px 24px;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:15px;font-weight:500;color:#666;transition:all .3s ease}.settings-tabs .tab:hover{color:#667eea;background:#f5f5f5}.settings-tabs .tab.active{color:#667eea;border-bottom-color:#667eea}.settings-card{background:#fff;border-radius:12px;padding:30px;box-shadow:0 2px 8px #0000001a}.settings-card h2{margin:0 0 25px;font-size:22px;color:#333}.settings-card h3{margin:20px 0 10px;font-size:16px;color:#333}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.form-group input{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;transition:border-color .3s ease;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#667eea}.form-group input.disabled-input{background:#f5f5f5;color:#999;cursor:not-allowed}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.alert{padding:15px 20px;border-radius:8px;margin-bottom:20px;font-size:14px}.alert-success{background:#d4edda;color:#155724;border-left:4px solid #28a745}.alert-error{background:#f8d7da;color:#721c24;border-left:4px solid #dc3545}.security-info{margin-top:30px;padding:20px;background:#f9f9f9;border-radius:8px;border-left:4px solid #667eea}.security-info h3{margin:0 0 10px;font-size:16px;color:#333}.security-info ul{margin:0;padding-left:20px}.security-info li{margin:5px 0;color:#666;font-size:14px}.api-section{margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #e0e0e0}.api-section:last-child{border-bottom:none}.api-section p{margin:10px 0;color:#666;line-height:1.6}.api-section .note{font-size:13px;color:#999;font-style:italic}.api-section a{color:#667eea;text-decoration:none;font-weight:500}.api-section a:hover{text-decoration:underline}.code-block{display:block;background:#2d2d2d;color:#f8f8f2;padding:15px;border-radius:8px;font-family:Courier New,monospace;font-size:13px;overflow-x:auto;margin:10px 0;white-space:pre}.code-block.small{font-size:12px;padding:12px}.endpoint{margin:15px 0;padding:15px;background:#f9f9f9;border-radius:8px;border-left:4px solid #667eea}.endpoint p{margin:10px 0 0;font-size:14px}.method{display:inline-block;padding:4px 12px;border-radius:4px;font-size:12px;font-weight:700;margin-right:10px}.method.get{background:#61affe;color:#fff}.method.post{background:#49cc90;color:#fff}.method.put{background:#fca130;color:#fff}.method.delete{background:#f93e3e;color:#fff}.path{font-family:Courier New,monospace;font-size:14px;color:#333;font-weight:500}.force-refresh-section{margin-top:20px}.force-refresh-section h3{margin-bottom:10px;color:#333}.force-refresh-section>p{color:#666;margin-bottom:20px}.refresh-status{background:#f9f9f9;border-radius:8px;padding:16px;margin-bottom:20px}.status-info{display:flex;flex-direction:column;gap:8px}.status-label{font-weight:500;color:#666}.status-value{font-weight:600;color:#333}.status-reason{font-size:13px;color:#888;font-style:italic}.no-refresh{color:#888;font-style:italic;margin:0}.btn-warning{background:linear-gradient(135deg,#fd7e14,#e65100);color:#fff;margin-top:10px}.btn-warning:hover{transform:translateY(-2px);box-shadow:0 4px 12px #fd7e1466}.info-box{margin-top:30px;padding:20px;background:linear-gradient(135deg,#667eea10,#764ba210);border-radius:12px;border-left:4px solid #667eea}.info-box h4{margin:0 0 12px;color:#333;font-size:15px}.info-box ul{margin:0;padding-left:20px}.info-box li{margin:8px 0;color:#666;font-size:14px;line-height:1.5}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.settings-tabs{flex-wrap:wrap}.settings-tabs .tab{flex:1;min-width:100px;text-align:center;font-size:13px;padding:10px 16px}}.superadmin-dashboard{padding:0}.page-header{margin-bottom:32px}.page-header h1{margin:0 0 8px;font-size:32px;color:#1a1a2e}.page-header p{margin:0;color:#666;font-size:15px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:40px}.stat-card{background:#fff;border-radius:16px;padding:24px;display:flex;align-items:center;gap:20px;box-shadow:0 4px 12px #00000014;border:1px solid #e8e8e8;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f}.stat-card.primary{border-left:4px solid #667eea}.stat-icon{font-size:40px}.stat-content{display:flex;flex-direction:column}.stat-value{font-size:36px;font-weight:700;color:#1a1a2e;line-height:1}.stat-label{font-size:14px;color:#888;margin-top:4px}.section-title{font-size:20px;color:#1a1a2e;margin:0 0 20px}.actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:40px}.action-card{background:#fff;border-radius:16px;padding:24px;display:flex;align-items:center;gap:20px;box-shadow:0 4px 12px #00000014;border:1px solid #e8e8e8;text-decoration:none;color:inherit;transition:all .2s ease}.action-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f;border-color:#667eea}.action-icon{font-size:48px;flex-shrink:0}.action-content{flex:1}.action-content h3{margin:0 0 8px;font-size:18px;color:#1a1a2e}.action-content p{margin:0;font-size:14px;color:#888;line-height:1.5}.action-arrow{font-size:24px;color:#667eea;opacity:0;transition:opacity .2s ease,transform .2s ease}.action-card:hover .action-arrow{opacity:1;transform:translate(4px)}.info-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.info-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 12px #00000014;border:1px solid #e8e8e8}.info-card h3{margin:0 0 20px;font-size:18px;color:#1a1a2e;display:flex;align-items:center;gap:8px}.info-stats{display:flex;flex-direction:column;gap:16px}.info-stat{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f9f9f9;border-radius:8px}.info-stat .label{color:#666;font-size:14px}.info-stat .value{font-weight:700;color:#1a1a2e;font-size:18px}.tips-list{margin:0;padding:0;list-style:none}.tips-list li{padding:12px 16px;background:#f9f9f9;border-radius:8px;margin-bottom:12px;font-size:14px;color:#666;line-height:1.5}.tips-list li:last-child{margin-bottom:0}.tips-list li strong{color:#667eea}@media (max-width: 768px){.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-card{padding:16px;gap:12px}.stat-icon{font-size:28px}.stat-value{font-size:24px}.actions-grid{grid-template-columns:1fr}.action-card{padding:16px}.action-icon{font-size:36px}.info-section{grid-template-columns:1fr}}.superadmin-providers{padding:0}.page-header p{margin:0;color:#666;font-size:14px}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:#fff;border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 8px #0000000f;border:1px solid #e8e8e8}.stat-label{font-size:13px;color:#888}.search-card{display:flex;align-items:center;gap:16px;margin-bottom:20px;padding:16px 20px}.search-input{flex:1;max-width:400px}.result-count{color:#888;font-size:14px}.card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;border:1px solid #e8e8e8;padding:0;overflow:hidden}.table-container{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:16px 20px;text-align:left;border-bottom:1px solid #f0f0f0}.table th{background:#f9f9f9;font-weight:600;color:#666;font-size:13px;text-transform:uppercase}.table tbody tr:hover{background:#f9f9f9}.table tbody tr:last-child td{border-bottom:none}.provider-info{display:flex;flex-direction:column;gap:4px}.provider-info strong{font-size:15px;color:#1a1a2e}.provider-info .email{font-size:13px;color:#888}.provider-info .company{font-size:12px;color:#667eea}.codes-info{display:flex;flex-direction:column;gap:4px}.codes-total{font-weight:600;color:#1a1a2e}.codes-active{font-size:12px;color:#10b981}.expiry-info{display:flex;flex-direction:column;gap:4px}.lifetime-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:500}.days-badge{font-size:12px;color:#10b981}.days-badge.warning{color:#f59e0b}.days-badge.urgent{color:#dc3545;font-weight:600}.no-sub{color:#ccc}.badge{display:inline-block;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:500}.badge-success{background:#e8f5e9;color:#2e7d32}.badge-error{background:#ffebee;color:#c62828}.badge-warning{background:#fff3e0;color:#f57c00}.badge-info{background:#e3f2fd;color:#1565c0}.badge-secondary{background:#f5f5f5;color:#666}.action-buttons{display:flex;gap:8px}.btn{padding:10px 16px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px}.btn-sm{padding:8px 12px;font-size:13px}.btn-secondary{background:#e0e0e0;color:#333}.btn-secondary:hover{background:#d0d0d0}.btn-success{background:#10b981;color:#fff}.btn-success:hover{background:#059669}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333}.btn-outline{background:transparent;border:2px solid #667eea;color:#667eea}.btn-outline:hover{background:#667eea;color:#fff}.btn:disabled{opacity:.6;cursor:not-allowed}.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}.modal{background:#fff;border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #eee}.modal-header h2{margin:0;font-size:20px;color:#1a1a2e}.modal-close{background:none;border:none;font-size:28px;cursor:pointer;color:#999;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px}.modal-close:hover{background:#f5f5f5;color:#333}.modal-body{padding:24px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #eee;background:#f9f9f9;border-radius:0 0 16px 16px}.provider-summary{text-align:center;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid #eee}.provider-summary h3{margin:0 0 4px;font-size:20px;color:#1a1a2e}.provider-summary p{margin:0 0 12px;color:#888}.current-status{display:flex;align-items:center;justify-content:center;gap:8px}.current-expiry{margin-top:12px;color:#666;font-size:14px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#333;font-size:14px}.form-control{width:100%;padding:12px 14px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;transition:border-color .2s ease}.form-control:focus{outline:none;border-color:#667eea}.action-options{display:flex;flex-direction:column;gap:12px}.action-option{display:flex;align-items:center;padding:16px;border:2px solid #e0e0e0;border-radius:12px;cursor:pointer;transition:all .2s ease}.action-option:hover{border-color:#667eea}.action-option.selected{border-color:#667eea;background:#f0f4ff}.action-option.danger.selected{border-color:#dc3545;background:#ffebee}.action-option input{display:none}.option-content{display:flex;align-items:center;gap:12px}.option-icon{font-size:24px}.option-title{font-weight:600;color:#1a1a2e}.option-desc{color:#888;font-size:13px;margin-left:auto}.quick-dates{display:flex;gap:8px;margin-top:12px}.empty-state{text-align:center;padding:60px 20px}.empty-state p{margin:0;color:#888}.loading{display:flex;justify-content:center;align-items:center;min-height:400px}.spinner{width:48px;height:48px;border:4px solid #e0e0e0;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 1024px){.table th:nth-child(5),.table td:nth-child(5){display:none}}@media (max-width: 768px){.stats-row{grid-template-columns:repeat(2,1fr)}.search-card{flex-direction:column;align-items:stretch}.search-input{max-width:none}.table th,.table td{padding:12px 10px}.action-buttons{flex-direction:column}.option-desc{display:none}}.superadmin-tickets{padding:24px}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:#fff;border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 8px #00000014}.stat-card.warning{border-left:4px solid #f59e0b}.stat-card.info{border-left:4px solid #3b82f6}.stat-card.success{border-left:4px solid #10b981}.stat-icon{font-size:32px}.stat-info{display:flex;flex-direction:column}.stat-value{font-size:28px;font-weight:700;color:#1a1a2e}.stat-label{font-size:14px;color:#64748b}.filters-card{background:#fff;border-radius:12px;padding:16px;margin-bottom:24px;box-shadow:0 2px 8px #00000014}.filters-row{display:flex;gap:16px;align-items:center}.search-input{flex:1}.status-select{width:180px}.tickets-list{display:flex;flex-direction:column;gap:16px}.ticket-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014}.ticket-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #e2e8f0}.ticket-title h3{margin:0 0 8px;font-size:18px;color:#1a1a2e}.ticket-meta{display:flex;gap:16px;font-size:14px;color:#64748b}.ticket-badges{display:flex;gap:8px}.badge{padding:4px 12px;border-radius:20px;font-size:13px;font-weight:500}.badge-warning{background:#fef3c7;color:#d97706}.badge-info{background:#dbeafe;color:#2563eb}.badge-success{background:#d1fae5;color:#059669}.badge-secondary{background:#e2e8f0;color:#64748b}.priority-badge{padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600}.priority-low{background:#e2e8f0;color:#64748b}.priority-medium{background:#dbeafe;color:#2563eb}.priority-high{background:#fee2e2;color:#dc2626}.priority-urgent{background:#dc2626;color:#fff}.ticket-body{margin-bottom:16px}.ticket-message{color:#374151;line-height:1.6;margin:0;white-space:pre-wrap}.ticket-replies{margin-top:20px;padding-top:16px;border-top:1px solid #e2e8f0}.ticket-replies h4{margin:0 0 12px;font-size:14px;color:#64748b}.reply{padding:12px 16px;border-radius:8px;margin-bottom:8px}.admin-reply{background:#eff6ff;border-left:3px solid #3b82f6}.user-reply{background:#f3f4f6;border-left:3px solid #9ca3af}.reply-header{display:flex;justify-content:space-between;margin-bottom:8px;font-size:13px}.reply-author{font-weight:600;color:#1a1a2e}.reply-date{color:#64748b}.reply p{margin:0;color:#374151;font-size:14px}.ticket-actions{display:flex;gap:12px;align-items:center;padding-top:16px;border-top:1px solid #e2e8f0}.status-change{width:150px}.empty-state{text-align:center;padding:60px 20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014}.empty-state .icon{font-size:64px;margin-bottom:16px}.empty-state h3{margin:0 0 8px;color:#1a1a2e}.empty-state p{margin:0;color:#64748b}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:16px;width:90%;max-width:600px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e2e8f0}.modal-header h2{margin:0;font-size:20px}.modal-close{background:none;border:none;font-size:28px;color:#64748b;cursor:pointer;line-height:1}.modal-body{padding:24px;overflow-y:auto}.ticket-summary{background:#f8fafc;padding:16px;border-radius:8px;margin-bottom:20px;font-size:14px;line-height:1.6}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #e2e8f0}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#374151}.form-control{width:100%;padding:10px 14px;border:1px solid #d1d5db;border-radius:8px;font-size:14px}.form-control:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}textarea.form-control{resize:vertical;min-height:100px}.btn{padding:10px 20px;border-radius:8px;font-weight:500;cursor:pointer;border:none;transition:all .2s}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:#e2e8f0;color:#374151}.btn-secondary:hover{background:#cbd5e1}.page-header{margin-bottom:24px}.page-header h1{margin:0 0 4px;font-size:28px;color:#1a1a2e}.page-header p{margin:0;color:#64748b}.loading{display:flex;justify-content:center;align-items:center;height:400px}.spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.superadmin-tickets{padding:16px}.filters-row{flex-direction:column}.status-select{width:100%}.ticket-header{flex-direction:column;gap:12px}.ticket-meta{flex-direction:column;gap:4px}.ticket-actions{flex-direction:column}.status-change{width:100%}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-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:#f5f5f5}#root{min-height:100vh}input,textarea,button{font-family:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}
