.dashboard-gradient{background:linear-gradient(135deg,#0ea5e92e,#4f46e52e)}.dashboard-card{border-radius:1rem;border:1px solid rgba(148,163,184,.2);background:#0f172a66;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.dashboard-map-dot{filter:drop-shadow(0 0 8px rgba(239,68,68,.4))}:root{--color-brand-50: #eff6ff;--color-brand-100: #dbeafe;--color-brand-500: #2563eb;--color-brand-600: #1d4ed8;--color-brand-700: #1e40af;--color-accent-500: #06b6d4;--color-accent-600: #0891b2;--color-success: #10b981;--color-success-50: #f0fdf4;--color-success-100: #dcfce7;--color-success-500: #10b981;--color-success-600: #059669;--color-warning: #f59e0b;--color-warning-50: #fffbeb;--color-warning-100: #fef3c7;--color-warning-500: #f59e0b;--color-warning-600: #d97706;--color-danger: #ef4444;--color-danger-50: #fef2f2;--color-danger-100: #fee2e2;--color-danger-500: #ef4444;--color-danger-600: #dc2626;--color-surface: #ffffff;--color-surface-muted: #f1f5f9;--color-surface-dark: #0f172a;--color-text: #0f172a;--color-text-muted: #64748b;--color-text-inverse: #f8fafc;--color-border: #e2e8f0;--color-border-dark: #334155;--color-bg: #f8fafc;--color-bg-dark: #0f172a;--color-enterprise-dark: #0f172a;--color-enterprise-accent: #06b6d4;--color-enterprise-alert: #ef4444;--font-sans: "Inter", "SF Pro Text", system-ui, -apple-system, sans-serif;--font-mono: "SFMono-Regular", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 6px 16px rgba(15, 23, 42, .08);--shadow-lg: 0 16px 32px rgba(15, 23, 42, .12);--shadow-xl: 0 24px 48px rgba(15, 23, 42, .16);--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--z-toast: 1080;--brand-logo: url(/build/assets/logo-mark-BbaHOxmL.svg);--brand-name: "GClick Protect"}.ds-chip{border-radius:999px;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);border:1px solid var(--color-border)}.ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;transition:all .15s ease;border:1px solid transparent;cursor:pointer;text-decoration:none}.ds-btn:disabled{opacity:.5;cursor:not-allowed}.ds-btn-primary{background-color:var(--color-brand-500);color:#fff;border-color:var(--color-brand-500)}.ds-btn-primary:hover:not(:disabled){background-color:var(--color-brand-600);border-color:var(--color-brand-600)}.ds-btn-secondary{background-color:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.ds-btn-secondary:hover:not(:disabled){background-color:var(--color-surface-muted);border-color:var(--color-border-dark)}.ds-btn-success{background-color:var(--color-success-500);color:#fff;border-color:var(--color-success-500)}.ds-btn-success:hover:not(:disabled){background-color:var(--color-success-600);border-color:var(--color-success-600)}.ds-btn-danger{background-color:var(--color-danger-500);color:#fff;border-color:var(--color-danger-500)}.ds-btn-danger:hover:not(:disabled){background-color:var(--color-danger-600);border-color:var(--color-danger-600)}.ds-btn-ghost{background-color:transparent;color:var(--color-text);border-color:transparent}.ds-btn-ghost:hover:not(:disabled){background-color:var(--color-surface-muted)}.ds-input{display:block;width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);background-color:var(--color-surface);color:var(--color-text);transition:border-color .15s ease,box-shadow .15s ease}.ds-input:focus{outline:none;border-color:var(--color-brand-500);box-shadow:0 0 0 3px #2563eb1a}.ds-input::placeholder{color:var(--color-text-muted)}.ds-label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-text);margin-bottom:var(--space-2)}.ds-alert{padding:var(--space-4);border-radius:var(--radius-md);border-left:4px solid;display:flex;align-items:flex-start;gap:var(--space-3)}.ds-alert-success{background-color:var(--color-success-50);border-left-color:var(--color-success-500);color:var(--color-success-700)}.ds-alert-warning{background-color:var(--color-warning-50);border-left-color:var(--color-warning-500);color:var(--color-warning-700)}.ds-alert-danger{background-color:var(--color-danger-50);border-left-color:var(--color-danger-500);color:var(--color-danger-700)}.ds-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.025em}.ds-badge-success{background-color:var(--color-success-100);color:var(--color-success-700)}.ds-badge-warning{background-color:var(--color-warning-100);color:var(--color-warning-700)}.ds-badge-danger{background-color:var(--color-danger-100);color:var(--color-danger-700)}.ds-spinner{width:1rem;height:1rem;border:2px solid var(--color-border);border-top:2px solid var(--color-brand-500);border-radius:50%;animation:ds-spin 1s linear infinite}@keyframes ds-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ds-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.ds-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.ds-table th{padding:var(--space-3) var(--space-4);text-align:left;font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);background:var(--color-surface-muted);border-bottom:1px solid var(--color-border);white-space:nowrap}.ds-table td{padding:var(--space-3) var(--space-4);color:var(--color-text);border-bottom:1px solid var(--color-border);vertical-align:middle}.ds-table tbody tr{transition:background-color .1s ease}.ds-table tbody tr:last-child td{border-bottom:none}.ds-table tbody tr:hover{background-color:var(--color-surface-muted)}.ds-badge-info{background-color:var(--color-brand-100);color:var(--color-brand-700)}.ds-badge-neutral{background-color:var(--color-surface-muted);color:var(--color-text-muted)}.ds-stat-card{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);transition:box-shadow .2s ease,border-color .2s ease}.ds-stat-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-brand-100)}.ds-stat-icon{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:var(--radius-md);flex-shrink:0}.ds-stat-value{font-size:var(--text-2xl);font-weight:700;line-height:1.2;color:var(--color-text)}.ds-stat-label{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-1)}.ds-section{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);overflow:hidden}.ds-section-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-surface-muted)}.ds-section-body{padding:var(--space-6)}.ds-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border);overflow-x:auto;-webkit-overflow-scrolling:touch}.ds-tab{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:color .15s ease,border-color .15s ease;background:none;border-top:none;border-left:none;border-right:none}.ds-tab:hover{color:var(--color-text)}.ds-tab-active{color:var(--color-brand-500);border-bottom-color:var(--color-brand-500)}.ds-form-group{display:flex;flex-direction:column;gap:var(--space-2)}.ds-form-group label{font-size:var(--text-sm);font-weight:500;color:var(--color-text)}.ds-select{display:block;width:100%;padding:var(--space-3) var(--space-4);padding-right:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);background-color:var(--color-surface);color:var(--color-text);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;transition:border-color .15s ease,box-shadow .15s ease}.ds-select:focus{outline:none;border-color:var(--color-brand-500);box-shadow:0 0 0 3px #2563eb1a}.ds-fade-enter-active,.ds-fade-leave-active{transition:opacity .2s ease}.ds-fade-enter-from,.ds-fade-leave-to{opacity:0}.ds-slide-enter-active,.ds-slide-leave-active{transition:transform .2s ease,opacity .2s ease}.ds-slide-enter-from{transform:translateY(-.5rem);opacity:0}.ds-slide-leave-to{transform:translateY(.5rem);opacity:0}.ds-modal-enter-active,.ds-modal-leave-active{transition:opacity .2s ease}.ds-modal-enter-from,.ds-modal-leave-to{opacity:0}.ds-modal-panel-enter-active,.ds-modal-panel-leave-active{transition:opacity .2s ease,transform .2s ease}.ds-modal-panel-enter-from,.ds-modal-panel-leave-to{opacity:0;transform:scale(.95) translateY(.5rem)}.ds-tab-content-enter-active,.ds-tab-content-leave-active{transition:opacity .15s ease,transform .15s ease}.ds-tab-content-enter-from,.ds-tab-content-leave-to{opacity:0;transform:translateY(.25rem)}.ds-skeleton{background:linear-gradient(90deg,var(--color-surface-muted) 25%,var(--color-border) 37%,var(--color-surface-muted) 63%);background-size:200% 100%;animation:ds-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes ds-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ds-pulse-dot{position:relative}.ds-pulse-dot:after{content:"";position:absolute;inset:-2px;border-radius:50%;animation:ds-pulse-ring 2s ease-out infinite;background:inherit;opacity:0}@keyframes ds-pulse-ring{0%{transform:scale(1);opacity:.5}to{transform:scale(2.5);opacity:0}}html.dark .ds-card{background:var(--color-surface-dark);border-color:var(--color-border-dark)}html.dark .ds-input{background-color:var(--color-surface-dark);border-color:var(--color-border-dark);color:var(--color-text-inverse)}html.dark .ds-input::placeholder{color:var(--color-text-muted)}html.dark .ds-btn-secondary{background-color:var(--color-surface-dark);color:var(--color-text-inverse);border-color:var(--color-border-dark)}html.dark .ds-btn-secondary:hover:not(:disabled){background-color:var(--color-border-dark);border-color:var(--color-text-muted)}html.dark .ds-table-wrap{background:var(--color-surface-dark);border-color:var(--color-border-dark)}html.dark .ds-table th{background:#1e293b80;border-color:var(--color-border-dark);color:var(--color-text-muted)}html.dark .ds-table td{color:var(--color-text-inverse);border-color:var(--color-border-dark)}html.dark .ds-table tbody tr:hover{background-color:#3341554d}html.dark .ds-stat-card{background:var(--color-surface-dark);border-color:var(--color-border-dark)}html.dark .ds-stat-card:hover{border-color:var(--color-border-dark)}html.dark .ds-stat-value{color:var(--color-text-inverse)}html.dark .ds-section{background:var(--color-surface-dark);border-color:var(--color-border-dark)}html.dark .ds-section-header{background:#1e293b80;border-color:var(--color-border-dark)}html.dark .ds-tabs{border-color:var(--color-border-dark)}html.dark .ds-tab{color:var(--color-text-muted)}html.dark .ds-tab:hover{color:var(--color-text-inverse)}html.dark .ds-select{background-color:var(--color-surface-dark);border-color:var(--color-border-dark);color:var(--color-text-inverse);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%2394a3b8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e")}html.dark .ds-badge-info{background-color:#2563eb26;color:#93c5fd}html.dark .ds-badge-neutral{background-color:#33415580;color:#94a3b8}html.dark .ds-badge-success{background-color:#10b98126;color:#6ee7b7}html.dark .ds-badge-warning{background-color:#f59e0b26;color:#fcd34d}html.dark .ds-badge-danger{background-color:#ef444426;color:#fca5a5}html.dark .ds-skeleton{background:linear-gradient(90deg,#1e293b80 25%,#33415580 37%,#1e293b80 63%);background-size:200% 100%;animation:ds-shimmer 1.5s ease-in-out infinite}html.dark .ds-form-group label{color:var(--color-text-inverse)}html.dark .ds-chip{border-color:var(--color-border-dark);color:var(--color-text-inverse)}html[data-theme=light]{--color-surface: #ffffff;--color-surface-muted: #f8fafc;--color-border: #e2e8f0;--color-text: #0f172a;--color-text-muted: #64748b;--color-bg: #f8fafc;--color-bg-elevated: #ffffff}html[data-theme=dark]{--color-surface: #0f172a;--color-surface-muted: #111827;--color-border: #1f2937;--color-text: #e2e8f0;--color-text-muted: #94a3b8;--color-bg: #0b1120;--color-bg-elevated: #0f172a}html[data-theme=high-contrast]{--color-surface: #000000;--color-surface-muted: #0b0b0b;--color-border: #ffffff;--color-text: #ffffff;--color-text-muted: #e5e5e5;--color-bg: #000000;--color-bg-elevated: #0b0b0b;--color-brand-500: #22d3ee;--color-accent-500: #a3e635}html[data-theme=high-contrast] *{outline-color:#fff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.toast-enter-active,.toast-leave-active{transition:all .3s ease}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(30px)}
