:root{--color-teal:#0bacc5;--color-deep:#0796ae;--color-bright:#3fc8da;--color-soft:#e6f7fa;--color-ink:#0f172a;--color-muted:#64748b;--color-dark-page:#0a0b0d;--color-dark-surf:#17181b;--color-bg-page:var(--color-dark-page);--color-bg-surface-1:var(--color-dark-surf);--color-bg-surface-2:var(--color-ink);--color-bg-surface-3:#1a2332;--color-glass:#e6f7fa0f;--color-border:#e6f7fa14;--color-border-strong:#e6f7fa24;--color-accent:var(--color-teal);--color-accent-soft:var(--color-bright);--color-accent-deep:var(--color-deep);--color-accent-purple:var(--color-teal);--color-accent-purple-soft:var(--color-bright);--color-accent-cyan:var(--color-bright);--color-accent-pink:var(--color-teal);--color-accent-blue:var(--color-deep);--color-success:#1fe08a;--color-warning:#ffce63;--color-error:#ff4d6d;--color-text-primary:var(--color-soft);--color-text-secondary:#94a3b8;--color-text-muted:var(--color-muted);--gradient-brand:linear-gradient(135deg, #0796ae, #0bacc5, #3fc8da);--gradient-vivid:linear-gradient(135deg, #0796ae, #0bacc5, #3fc8da);--gradient-gold:linear-gradient(135deg, #ffd98a, #ffb300);--font-family:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-family-body:var(--font-family);--font-family-heading:"Fraunces", Georgia, "Times New Roman", serif;--font-family-brand:"Sora", var(--font-family);--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-body:1rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--radius-card:22px;--radius-button:18px;--radius-input:16px;--radius-pill:999px;--radius-sm:12px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--shadow-card:0 8px 20px #00000059;--shadow-glow:0 6px 18px #0bacc573;--shadow-glow-purple:var(--shadow-glow);--shadow-glow-cyan:0 6px 18px #3fc8da59;--focus-ring:0 0 0 3px #0bacc547;--transition-fast:.15s ease;--transition-base:.2s ease;--color-backdrop:#0a0b0dd9}.gradient-text{background:var(--gradient-vivid);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}.font-heading{font-family:var(--font-family-heading)}.font-brand{font-family:var(--font-family-brand)}.eyebrow{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:1.4px;color:var(--color-teal);font-weight:600}.btn-primary{padding:var(--space-3) var(--space-6);background:var(--gradient-brand);border-radius:var(--radius-button);color:#fff;font-family:var(--font-family-body);font-size:var(--font-size-sm);cursor:pointer;box-shadow:var(--shadow-glow);transition:opacity var(--transition-fast), transform var(--transition-fast);border:none;font-weight:600}.btn-primary:hover:not(:disabled){opacity:.92;transform:translateY(-1px)}.btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-secondary{padding:var(--space-2) var(--space-4);background:var(--color-glass);border:1px solid var(--color-border);border-radius:var(--radius-button);color:var(--color-text-secondary);font-family:var(--font-family-body);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);font-weight:500}.btn-secondary:hover:not(:disabled){background:var(--color-bg-surface-3);color:var(--color-text-primary);border-color:var(--color-border-strong)}.btn-secondary:disabled{opacity:.55;cursor:not-allowed}.btn-danger{padding:var(--space-2) var(--space-4);border:1px solid var(--color-error);border-radius:var(--radius-button);color:var(--color-error);font-family:var(--font-family-body);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;font-weight:600}.btn-danger:hover:not(:disabled){background:var(--color-error);color:#fff}.btn-danger:disabled{opacity:.55;cursor:not-allowed}.input-base{padding:var(--space-3) var(--space-4);background:var(--color-glass);border:1.5px solid var(--color-border);border-radius:var(--radius-input);color:var(--color-text-primary);font-family:var(--font-family-body);font-size:var(--font-size-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none}.input-base::placeholder{color:var(--color-text-muted)}.input-base:focus{border-color:var(--color-teal);box-shadow:var(--focus-ring)}.glass-card{background:var(--color-bg-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:var(--font-family-body);font-size:var(--font-size-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg-page);color:var(--color-text-primary);overflow-x:hidden}img{max-width:100%}#root{min-height:100vh}button,input,select,textarea{font-family:var(--font-family-body)}h1,h2,h3,.page-header h1,.stat-value,.dashboard-card-title,.campaigns-list-heading{font-family:var(--font-family-heading);letter-spacing:-.3px}.font-brand,.sidebar-brand span,.login-brand h1{font-family:var(--font-family-brand)}@media (width<=768px){input,select,textarea{font-size:16px}}.login-page{background:var(--color-bg-page);min-height:100vh;padding:var(--space-4);background-image:radial-gradient(at 15% 20%,#0bacc52e 0%,#0000 55%),radial-gradient(at 85% 80%,#3fc8da1f 0%,#0000 55%),radial-gradient(#0796ae14 0%,#0000 70%);justify-content:center;align-items:center;display:flex;position:relative}.login-lang{top:var(--space-4);right:var(--space-4);position:absolute}.login-card{background:var(--color-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--color-border-strong);border-radius:var(--radius-card);width:100%;max-width:420px;padding:var(--space-8);box-shadow:var(--shadow-card)}.login-brand{text-align:center;margin-bottom:var(--space-8)}.login-brand h1{font-size:var(--font-size-xl);margin:0;font-weight:800}.login-brand p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:var(--space-1) 0 0}.login-form{gap:var(--space-5);flex-direction:column;display:flex}.login-form label{gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);flex-direction:column;font-weight:500;display:flex}.login-form input{padding:var(--space-3) var(--space-4);background:var(--color-glass);border:1.5px solid var(--color-border);border-radius:var(--radius-input);color:var(--color-text-primary);font-size:var(--font-size-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none}.login-form input:focus{border-color:var(--color-teal);box-shadow:var(--focus-ring)}.login-form input::placeholder{color:var(--color-text-muted)}.login-form button{margin-top:var(--space-2)}.login-error{padding:var(--space-3);border-radius:var(--radius-input);color:var(--color-error);font-size:var(--font-size-sm);text-align:center;background:#ff4d6d1a;border:1px solid #ff4d6d59}.login-hint{margin-top:var(--space-6);text-align:center;font-size:var(--font-size-xs);color:var(--color-text-muted)}.auth-switch{margin:var(--space-2) 0 0;text-align:center;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.auth-switch a{color:var(--color-teal);font-weight:600;text-decoration:none}.auth-switch a:hover{text-decoration:underline}.register-card{max-width:520px}.register-notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius-input);color:var(--color-text-secondary);font-size:var(--font-size-sm);background:#0bacc51a;border:1px solid #0bacc547}.register-notice p{margin:0;line-height:1.45}.location-results{gap:var(--space-2);flex-direction:column;max-height:280px;display:flex;overflow-y:auto}.location-result{gap:var(--space-3);width:100%;padding:var(--space-3);text-align:left;background:var(--color-glass);border:1px solid var(--color-border);border-radius:var(--radius-input);color:var(--color-text-primary);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);align-items:center;display:flex}.location-result:hover,.location-result.selected{border-color:var(--color-teal);background:#0bacc51a}.location-result-photo{object-fit:cover;background:var(--color-bg-surface-3);border-radius:12px;flex-shrink:0;width:48px;height:48px}.location-result-photo.placeholder{background:var(--color-bg-surface-3)}.location-result-info{flex-direction:column;gap:2px;min-width:0;display:flex}.location-result-info strong{font-family:var(--font-family-heading);font-size:var(--font-size-sm)}.location-result-info span{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.location-pagination{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted);display:flex}.location-selected{gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-input);background:#1fe08a14;border:1px solid #1fe08a40;flex-direction:column;display:flex}.location-selected .field-label{font-size:var(--font-size-xs);color:var(--color-text-muted)}.register-success{gap:var(--space-5);flex-direction:column;display:flex}.register-success-btn{text-align:center;text-decoration:none}@media (width<=480px){.login-card{padding:var(--space-6)}.login-brand{margin-bottom:var(--space-6)}.location-pagination{flex-wrap:wrap;justify-content:center}}.layout{background:var(--color-bg-page);min-height:100vh;display:flex}.sidebar-overlay{background:var(--color-backdrop);z-index:40;position:fixed;inset:0}.sidebar{background:var(--color-bg-surface-1);border-right:1px solid var(--color-border);z-index:50;width:260px;height:100vh;transition:transform var(--transition-base);flex-direction:column;display:flex;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border)}.sidebar-brand{align-items:center;gap:var(--space-3);display:flex}.sidebar-logo{background:var(--gradient-vivid);border-radius:var(--radius-sm);width:40px;height:40px;font-size:var(--font-size-lg);color:#fff;box-shadow:var(--shadow-glow);justify-content:center;align-items:center;font-weight:800;display:flex}.sidebar-brand span{font-size:var(--font-size-body);font-weight:700}.sidebar-nav{padding:var(--space-4) var(--space-3);gap:var(--space-1);flex-direction:column;display:flex}.sidebar-link{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-input);color:var(--color-text-secondary);font-size:var(--font-size-sm);transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);border-left:2px solid #0000;font-weight:500;text-decoration:none;display:flex}.sidebar-link:hover{background:var(--color-bg-surface-3);color:var(--color-text-primary)}.sidebar-link.active{color:var(--color-teal);border-left-color:var(--color-teal);background:#0bacc51f;box-shadow:inset 4px 0 16px #0bacc526}.layout-main{width:100%;min-width:0;transition:margin-left var(--transition-base);flex-direction:column;flex:1;display:flex}.layout-header{z-index:30;background:var(--color-bg-surface-1);border-bottom:1px solid var(--color-border);position:sticky;top:0}.layout-header-inner{width:100%;max-width:1440px;padding:var(--space-3) var(--space-6);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.hamburger-btn{background:var(--color-glass);border:1px solid var(--color-border);border-radius:var(--radius-input);width:44px;height:44px;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-items:center;display:flex}.hamburger-btn:hover{background:var(--color-bg-surface-3);color:var(--color-text-primary);border-color:var(--color-border-strong)}.header-right{align-items:center;gap:var(--space-4);display:flex}.header-user{text-align:right;flex-direction:column;align-items:flex-end;gap:2px;display:flex}.header-location{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:600;line-height:1.2}.header-email{font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:1.2}@media (width<=640px){.header-email{display:none}}.logout-btn{padding:var(--space-2) var(--space-4);background:var(--color-glass);border:1px solid var(--color-border);border-radius:var(--radius-button);color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);font-weight:500}.logout-btn:hover{background:var(--color-bg-surface-3);color:var(--color-text-primary);border-color:var(--color-border-strong)}.language-switcher{padding:var(--space-2) var(--space-3);background:var(--color-glass);border:1px solid var(--color-border);border-radius:var(--radius-input);color:var(--color-text-secondary);font-size:var(--font-size-xs);cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none}.language-switcher:focus{border-color:var(--color-teal);box-shadow:var(--focus-ring)}.layout-content{width:100%;padding:var(--space-6);flex:1}.layout-content-inner{width:100%;max-width:1440px;margin:0 auto}@media (width>=1024px){.sidebar-overlay{display:none}.layout-main.sidebar-open{margin-left:260px}}@media (width<=768px){.layout-content{padding:var(--space-4)}.layout-header-inner{padding:var(--space-3) var(--space-4)}.header-right{gap:var(--space-2)}.header-location{text-overflow:ellipsis;white-space:nowrap;max-width:130px;overflow:hidden}}@media (width<=380px){.header-user{display:none}}.page{width:100%}.page-header{margin-bottom:var(--space-6)}.page-header-row{justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.campaigns-add-btn{white-space:nowrap;align-items:center;text-decoration:none;display:inline-flex}.campaigns-page-error{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-6);flex-direction:column;display:flex}a.btn-secondary{align-items:center;text-decoration:none;display:inline-flex}.page-header h1{font-size:var(--font-size-xl);color:var(--color-text-primary);margin:0;font-weight:800}.page-header p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:var(--space-1) 0 0}.stats-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.stats-grid-2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}@media (width>=900px){.stats-grid:not(.stats-grid-2){grid-template-columns:repeat(2,1fr)}}@media (width>=1200px){.stats-grid:not(.stats-grid-2){grid-template-columns:repeat(4,1fr)}}.dashboard-section{margin-bottom:var(--space-8)}.dashboard-section-title{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:1.4px;color:var(--color-teal);margin:0 0 var(--space-4);font-weight:600}.dashboard-section-header{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.dashboard-section-header .dashboard-section-title{margin-bottom:0}.stat-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.stat-card-live:before{background:radial-gradient(circle,#1fe08a40 0%,#0000 70%)}.visits-chart{align-items:flex-end;gap:var(--space-3);min-height:180px;padding-top:var(--space-4);display:flex}.visits-chart-col{align-items:center;gap:var(--space-2);flex-direction:column;flex:1;min-width:0;display:flex}.visits-chart-bars{justify-content:center;align-items:flex-end;width:100%;height:120px;display:flex}.visits-chart-bar{background:var(--gradient-brand);width:70%;max-width:40px;box-shadow:var(--shadow-glow);min-height:4px;transition:height var(--transition-base);border-radius:8px 8px 4px 4px}.visits-chart-value{font-size:var(--font-size-xs);color:var(--color-text-primary);font-weight:600}.visits-chart-label{color:var(--color-text-muted);text-align:center;font-size:.6875rem}.visits-chart-legend{margin:var(--space-4) 0 0;font-size:var(--font-size-xs);color:var(--color-text-muted)}.dashboard-table-card{margin-top:var(--space-5)}.dashboard-card-title{font-size:var(--font-size-body);color:var(--color-text-primary);margin:0 0 var(--space-4);font-weight:700}.dashboard-table-wrap{overflow-x:auto}.stat-card{background:var(--color-bg-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:var(--space-5);box-shadow:var(--shadow-card);gap:var(--space-2);transition:border-color var(--transition-fast), transform var(--transition-fast);flex-direction:column;display:flex;position:relative;overflow:hidden}.stat-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#0bacc538 0%,#0000 70%);border-radius:50%;width:80px;height:80px;position:absolute;top:-20px;right:-20px}.stat-card:hover{border-color:var(--color-border-strong);transform:translateY(-2px)}.stat-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:1.4px;color:var(--color-teal);font-weight:600}.stat-value{font-size:var(--font-size-2xl);background:var(--gradient-brand);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:800}.stat-change{font-size:var(--font-size-xs);font-weight:600}.stat-change.positive{color:var(--color-success)}.card{background:var(--color-bg-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:var(--space-5);box-shadow:var(--shadow-card)}.card h2{font-size:var(--font-size-body);color:var(--color-text-primary);margin:0 0 var(--space-4);font-weight:700}.activity-list{gap:var(--space-3);flex-direction:column;display:flex}.activity-item{padding:var(--space-3) var(--space-4);background:var(--color-glass);border:1px solid var(--color-border);border-radius:var(--radius-input);transition:background var(--transition-fast), border-color var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.activity-item:hover{background:var(--color-bg-surface-3);border-color:var(--color-border-strong)}.activity-info{flex-direction:column;gap:2px;display:flex}.activity-user{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:600}.activity-action{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.activity-time{font-size:var(--font-size-xs);color:var(--color-text-muted)}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid #ffffff0f}.data-table th{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:1.4px;font-weight:600}.data-table td{font-size:var(--font-size-sm);color:var(--color-text-primary)}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--color-bg-surface-3)}.data-table tbody tr:last-child td{border-bottom:none}.badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:600;display:inline-block}.badge-role{color:var(--color-teal);background:#0bacc526}.badge-active{color:var(--color-success);background:#1fe08a26}.badge-inactive{color:var(--color-text-muted);background:#646a8c33}.notification-form{gap:var(--space-6);flex-direction:column;display:flex}.form-section{gap:var(--space-4);flex-direction:column;display:flex}.form-section h2{font-size:var(--font-size-xs);color:var(--color-teal);text-transform:uppercase;letter-spacing:1.4px;margin:0;font-weight:600}.notification-form label{gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);flex-direction:column;font-weight:500;display:flex}.notification-form input,.notification-form textarea{padding:var(--space-3) var(--space-4);background:var(--color-glass);border:1.5px solid var(--color-border);border-radius:var(--radius-input);color:var(--color-text-primary);font-size:var(--font-size-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none}.notification-form input:focus,.notification-form textarea:focus{border-color:var(--color-teal);box-shadow:var(--focus-ring)}.notification-form input,.notification-form textarea,.campaigns-form input,.campaigns-form textarea{font-family:var(--font-family-body)}.notification-form textarea{resize:vertical;min-height:80px;font-family:inherit}.field-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:400}.form-row{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.form-result{padding:var(--space-3) var(--space-4);border-radius:var(--radius-input);font-size:var(--font-size-sm)}.form-result.success{color:var(--color-success);background:#1fe08a1a;border:1px solid #1fe08a59}.form-result.error{color:var(--color-error);background:#ff4d6d1a;border:1px solid #ff4d6d59}.form-result p{margin:0}.form-result pre{margin:var(--space-3) 0 0;padding:var(--space-3);background:var(--color-bg-page);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary);overflow-x:auto}.submit-btn{align-self:flex-start}.campaigns-form-card{margin-bottom:var(--space-8)}.campaigns-form{gap:var(--space-5);flex-direction:column;display:flex}.campaigns-form label{gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);flex-direction:column;font-weight:500;display:flex}.campaigns-form textarea{resize:vertical;min-height:120px;font-family:inherit}.image-upload-field{gap:var(--space-2);flex-direction:column;display:flex}.field-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500}.image-upload-area{border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-card);background:var(--color-glass);overflow:hidden}.image-upload-trigger{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-8);cursor:pointer;color:var(--color-text-muted);transition:background var(--transition-fast), color var(--transition-fast);flex-direction:column;display:flex}.image-upload-trigger:hover{background:var(--color-bg-surface-3);color:var(--color-text-secondary)}.image-input-hidden{display:none}.image-preview-wrap{gap:var(--space-3);padding:var(--space-4);flex-direction:column;display:flex}.image-preview{object-fit:cover;border-radius:var(--radius-input);width:100%;max-height:280px}.image-remove-btn{align-self:flex-start}.image-preview-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.campaign-upload-ok{color:var(--color-success)}.field-error{font-size:var(--font-size-xs);color:var(--color-error)}.campaigns-list-section{margin-top:var(--space-8)}.campaigns-list-heading{font-size:var(--font-size-lg);color:var(--color-text-primary);margin:0 0 var(--space-5);font-weight:700}.campaigns-filters{gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.campaigns-filter{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-glass);border:1px solid var(--color-border);border-radius:var(--radius-button);color:var(--color-text-secondary);font-family:var(--font-family-body);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);font-weight:500;display:inline-flex}.campaigns-filter:hover{color:var(--color-text-primary);border-color:var(--color-border-strong)}.campaigns-filter.active{background:var(--color-bg-surface-3);color:var(--color-text-primary);border-color:var(--color-teal)}.campaigns-filter-count{background:var(--color-bg-surface-1);min-width:20px;height:20px;color:var(--color-text-muted);font-size:var(--font-size-xs);border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-weight:600;display:inline-flex}.campaigns-filter.active .campaigns-filter-count{background:var(--color-teal);color:#fff}.campaigns-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.campaign-card{background:var(--color-bg-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);transition:border-color var(--transition-fast), transform var(--transition-fast);overflow:hidden}.campaign-card:hover{border-color:var(--color-border-strong);transform:translateY(-2px)}.campaign-card-image{aspect-ratio:16/9;background:var(--color-bg-surface-3);overflow:hidden}.campaign-card-image img{object-fit:cover;width:100%;height:100%}.campaign-card-body{padding:var(--space-5);gap:var(--space-2);flex-direction:column;display:flex}.campaign-card-meta{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.campaign-card-business{font-size:var(--font-size-xs);color:var(--color-teal);font-weight:600}.badge-status-active{color:var(--color-success);background:#1fe08a26}.badge-status-paused{color:var(--color-warning);background:#ffce6326}.badge-status-expired{color:var(--color-text-muted);background:#646a8c33}.campaign-card-body h3{font-size:var(--font-size-body);color:var(--color-text-primary);margin:0;font-weight:700}.campaign-url-preview{border:1px solid var(--color-border);border-radius:var(--radius-input);padding:0;overflow:hidden}.campaigns-empty{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.campaign-card-valid{font-size:var(--font-size-xs);color:var(--color-text-muted)}.campaign-card-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:0;line-height:1.5;display:-webkit-box;overflow:hidden}.campaign-card-footer{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.campaign-card-date{font-size:var(--font-size-xs);color:var(--color-text-muted)}.campaign-card-link{color:inherit;cursor:pointer;text-decoration:none;display:block}.campaign-card-link:focus-visible{outline:2px solid var(--color-teal);outline-offset:2px}.campaign-detail-card{gap:var(--space-6);grid-template-columns:minmax(0,320px) 1fr;align-items:start;display:grid}@media (width<=768px){.campaign-detail-card{grid-template-columns:1fr}}.campaign-detail-image{aspect-ratio:16/9;border-radius:var(--radius-input);background:var(--color-bg-surface-3);overflow:hidden}.campaign-detail-image img{object-fit:cover;width:100%;height:100%}.campaign-detail-body{gap:var(--space-3);flex-direction:column;display:flex}.campaign-detail-title{font-size:var(--font-size-xl);color:var(--color-text-primary);margin:0;font-weight:700}.campaign-detail-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:pre-wrap;margin:0;line-height:1.6}.campaign-detail-meta-list{gap:var(--space-6);margin:var(--space-2) 0 0;padding-top:var(--space-3);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.campaign-detail-meta-list dt{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:2px}.campaign-detail-meta-list dd{font-size:var(--font-size-sm);color:var(--color-text-primary);margin:0;font-weight:600}.campaign-detail-actions{gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.campaign-notify-card{gap:var(--space-3);flex-direction:column;align-items:flex-start;display:flex}.campaign-notify-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}
