@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--header-height:88px;--bg-0:#05070c;--bg-1:#0b1220;--bg-base:#060a12;--card-bg:#ffffff14;--card-bg-2:#ffffff0f;--card-border:#ffffff1f;--text-main:#ffffffeb;--text-muted:#ffffffa6;--text-muted-2:#ffffff73;--shadow-main:0 14px 40px #00000073;--shadow-sm:0 10px 26px #00000059;--color-good:#52ffa8;--color-bad:#ff5c7a;--color-warn:#ffd36a;--btn-bg:linear-gradient(180deg, #ffffff1a, #ffffff0f);--btn-border:#ffffff29;--btn-hover:#ffffff42;--input-bg:#05070c59;--input-border:#ffffff24;--accent:#7bb6ff;--accent-rgb:123, 182, 255;--accent-glow:rgba(var(--accent-rgb), .3);--accent-dim:rgba(var(--accent-rgb), .12);--text-primary:var(--text-main);--text-secondary:var(--text-muted);--border:var(--card-border);--border-hover:var(--btn-hover);--bg-glass:var(--card-bg);--bg-glass-hover:rgba(var(--accent-rgb), .08);--bg-input:var(--input-bg);--bg-card:var(--card-bg);--success:var(--color-good);--success-bg:#52ffa81f;--error:var(--color-bad);--error-bg:#ff5c7a1f;--warning:var(--color-warn);--warning-bg:#ffd36a1f;--blocked:#c084fc;--blocked-bg:#c084fc1f;--radius:18px;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-xl:22px;--radius-full:50%;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-2xl:32px;--font:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--transition:.2s ease;--transition-slow:.4s ease;--sidebar-width:260px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font);background-color:var(--bg-base);color:var(--text-main);overscroll-behavior:none;background-image:radial-gradient(circle at 18% -10%, #ffffff1a, transparent 58%), radial-gradient(circle at 88% 8%, rgba(var(--accent-rgb), .14), transparent 55%), radial-gradient(circle at 70% 110%, #52ffa814, transparent 60%), linear-gradient(180deg, var(--bg-0) 0%, var(--bg-1) 55%, var(--bg-base) 100%);background-repeat:no-repeat;background-size:100% 100%;background-attachment:fixed;min-height:100dvh;line-height:1.6;transition:background-color .4s,color .4s;overflow:hidden}#root{min-height:100vh}.glass-card{background:linear-gradient(180deg, var(--card-bg), var(--card-bg-2));border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:var(--shadow-main);-webkit-backdrop-filter:blur(14px);transition:all .3s;overflow:hidden}.glass{background:var(--card-bg);-webkit-backdrop-filter:blur(14px);border:1px solid var(--card-border);border-radius:var(--radius)}.glass-subtle{background:var(--card-bg-2);-webkit-backdrop-filter:blur(10px);border:1px solid var(--card-border);border-radius:var(--radius-md)}.app-layout{width:100vw;height:100dvh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);background:linear-gradient(180deg, var(--card-bg), var(--card-bg-2));-webkit-backdrop-filter:blur(20px);border-right:1px solid var(--card-border);z-index:100;height:100vh;transition:transform var(--transition);flex-direction:column;flex-shrink:0;display:flex}.sidebar-logo{height:var(--header-height);padding:0 var(--space-lg);align-items:center;gap:var(--space-md);border-bottom:1px solid var(--card-border);box-sizing:border-box;display:flex}.sidebar-logo h1{font-size:var(--text-lg);background:linear-gradient(135deg, var(--accent), #a78bfa);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:700}.sidebar-logo .logo-icon{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--accent), #a78bfa);width:36px;height:36px;box-shadow:0 0 20px var(--accent-glow);justify-content:center;align-items:center;font-size:18px;display:flex}.sidebar-nav{padding:var(--space-md);gap:var(--space-xs);flex-direction:column;flex:1;display:flex}.nav-item{align-items:center;gap:var(--space-md);padding:10px var(--space-md);color:var(--text-muted);font-size:var(--text-sm);transition:all var(--transition);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:12px;width:100%;margin:2px 0;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:rgba(var(--accent-rgb), .1);color:var(--text-main)}.nav-item.active{background:rgba(var(--accent-rgb), .15);color:var(--text-main)}.nav-item .icon{font-size:var(--text-lg);text-align:center;width:24px}.main-content{-webkit-overflow-scrolling:touch;flex:1;min-width:0;height:100dvh;overflow:hidden auto}.page-header{min-height:var(--header-height);padding:0 var(--space-xl);justify-content:space-between;align-items:center;gap:var(--space-md);border-bottom:1px solid var(--card-border);background:linear-gradient(180deg, var(--card-bg), transparent);-webkit-backdrop-filter:blur(12px);box-sizing:border-box;display:flex}.page-header h2{font-size:var(--text-2xl);letter-spacing:-.02em;color:var(--text-main);font-weight:700}.page-header .subtitle{color:var(--text-muted);font-size:var(--text-sm);margin-top:var(--space-xs)}.page-body{padding:var(--space-xl)}.card{background:linear-gradient(180deg, var(--card-bg), var(--card-bg-2));border:1px solid var(--card-border);border-radius:var(--radius);min-width:0;max-width:100%;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(14px);padding:16px;transition:all .3s}.card:hover{border-color:var(--btn-hover)}.card-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.card-title{color:var(--text-main);font-size:1.1rem;font-weight:600}.stats-grid{gap:var(--space-md);margin-bottom:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.stat-card{padding:var(--space-lg);gap:var(--space-sm);flex-direction:column;display:flex}.stat-card .stat-value{font-size:var(--text-3xl);letter-spacing:-.03em;font-weight:700;line-height:1}.stat-card .stat-label{font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.stat-card.success .stat-value{color:var(--color-good)}.stat-card.error .stat-value{color:var(--color-bad)}.stat-card.blocked .stat-value{color:var(--blocked)}.stat-card.neutral .stat-value{color:var(--accent)}.btn{appearance:none;border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--text-main);font-family:var(--font);cursor:pointer;white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex;box-shadow:0 4px 12px #00000014}.btn:hover{border-color:var(--btn-hover);transform:translateY(-1px)}.btn:active{transform:translateY(1px)}.btn-primary{border-color:rgba(var(--accent-rgb), .35);background:linear-gradient(180deg, rgba(var(--accent-rgb), .22), #ffffff0f);color:var(--text-main);box-shadow:0 4px 15px var(--accent-glow)}.btn-primary:hover{border-color:rgba(var(--accent-rgb), .5);box-shadow:0 6px 20px var(--accent-glow)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-secondary{background:var(--btn-bg);color:var(--text-main);border-color:var(--btn-border)}.btn-secondary:hover{border-color:var(--btn-hover)}.btn-danger{color:var(--text-main);background:linear-gradient(#ff5c7a2e,#ffffff0f);border-color:#ff5c7a59}.btn-danger:hover{border-color:#ff5c7a80}.btn-success{color:var(--text-main);background:linear-gradient(#52ffa82e,#ffffff0f);border-color:#52ffa859}.btn-success:hover{border-color:#52ffa880}.btn-sm{border-radius:var(--radius-sm);padding:6px 12px;font-size:.8rem}.btn-lg{padding:var(--space-md) var(--space-lg);font-size:var(--text-base)}.btn-close{color:var(--text-muted);cursor:pointer;transition:color var(--transition);background:0 0;border:none;padding:0;font-size:24px;line-height:1}.btn-close:hover{color:var(--text-main)}.form-group{margin-bottom:var(--space-md)}.form-label,label{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:6px;font-weight:500;display:block}.form-input,input[type=text],input[type=password],input[type=email],input[type=datetime-local],input[type=number],select,textarea{border:1px solid var(--input-border);background:var(--input-bg);width:100%;color:var(--text-main);font-family:var(--font);font-size:var(--text-sm);border-radius:12px;outline:none;padding:8px 12px;transition:border-color .2s}.form-input:focus,input:focus,select:focus,textarea:focus{border-color:rgba(var(--accent-rgb), .6);box-shadow:0 0 0 3px rgba(var(--accent-rgb), .1)}.form-input::placeholder,input::placeholder,textarea::placeholder{color:var(--text-muted-2)}textarea.form-input,textarea{resize:vertical;min-height:100px}select.form-input,select{appearance:none;cursor:pointer}.table-container{border-radius:var(--radius);border:1px solid var(--card-border);overflow-x:auto}table{border-collapse:collapse;width:100%}thead th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--card-border);padding:10px 12px;font-size:.85rem;font-weight:500}tbody td{border-bottom:1px solid var(--card-border);color:var(--text-main);font-size:var(--text-sm);padding:10px 12px}tbody tr{transition:background .15s}tbody tr:hover{background:rgba(var(--accent-rgb), .05)}tbody tr:last-child td{border-bottom:none}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:rgba(var(--accent-rgb), .08)}.badge{font-size:var(--text-xs);letter-spacing:.02em;border-radius:99px;align-items:center;gap:6px;padding:3px 10px;font-weight:600;display:inline-flex}.badge:before{content:"";border-radius:var(--radius-full);width:6px;height:6px}.badge-draft{background:var(--card-bg);color:var(--text-muted)}.badge-draft:before{background:var(--text-muted-2)}.badge-scheduled{background:var(--warning-bg);color:var(--color-warn)}.badge-scheduled:before{background:var(--color-warn)}.badge-running{background:var(--accent-dim);color:var(--accent)}.badge-completed{background:var(--success-bg);color:var(--color-good)}.badge-completed:before{background:var(--color-good)}.badge-failed{background:var(--error-bg);color:var(--color-bad)}.badge-failed:before{background:var(--color-bad)}.badge-paused{background:var(--warning-bg);color:var(--color-warn)}.badge-paused:before{background:var(--color-warn)}.color-dot{border-radius:var(--radius-full);flex-shrink:0;width:12px;height:12px;display:inline-block}.progress-bar{background:var(--card-bg);border-radius:3px;height:6px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent), #a78bfa);height:100%;transition:width var(--transition-slow);border-radius:3px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;background:#0009;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{border:1px solid var(--card-border);border-radius:var(--radius-xl);padding:var(--space-xl);width:90%;max-width:520px;max-height:85vh;box-shadow:var(--shadow-main);-webkit-backdrop-filter:blur(20px);background:linear-gradient(#0b1220fa,#060a12fa);animation:.3s slideUp;overflow-y:auto}.modal-title{font-size:var(--text-xl);margin-bottom:var(--space-lg);color:var(--text-main);font-weight:700}.modal-actions{gap:var(--space-sm);margin-top:var(--space-lg);justify-content:flex-end;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:#ffffff26;background-clip:padding-box;border:2px solid #0000;border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:#ffffff40}*{scrollbar-width:thin;scrollbar-color:#ffffff26 transparent}.empty-state{text-align:center;padding:var(--space-2xl);color:var(--text-muted)}.empty-state .icon{margin-bottom:var(--space-md);opacity:.3;font-size:48px}.empty-state p{font-size:var(--text-sm);margin-bottom:var(--space-md)}.login-page{background-color:var(--bg-base);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";background:radial-gradient(circle, var(--accent-glow), transparent 70%);pointer-events:none;width:600px;height:600px;position:absolute;top:-200px;right:-200px}.login-page:after{content:"";pointer-events:none;background:radial-gradient(circle,#52ffa81a,#0000 70%);width:400px;height:400px;position:absolute;bottom:-100px;left:-100px}.login-card{width:100%;max-width:400px;padding:var(--space-xl);z-index:1}.login-card h1{font-size:var(--text-2xl);text-align:center;margin-bottom:var(--space-xs);background:linear-gradient(135deg, var(--accent), #a78bfa);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:700}.login-card .subtitle{text-align:center;color:var(--text-muted);font-size:var(--text-sm);margin-bottom:var(--space-xl)}a{color:var(--accent);text-decoration:none;transition:opacity .15s}a:hover{opacity:.85}.mobile-header{display:flex!important}@media (width>=769px){.mobile-header,.sidebar-backdrop{display:none!important}.broadcast-layout{gap:var(--space-xl);grid-template-columns:minmax(0,1fr) 400px;align-items:start;display:grid}}@media (width<=768px){html{font-size:13px!important}:root{--space-md:8px;--space-lg:12px;--space-xl:16px;--space-2xl:20px;--sidebar-width:260px;--text-2xl:1.25rem;--text-3xl:1.5rem}.app-layout{flex-direction:column}.main-content{padding:var(--space-md);flex:1;padding-top:60px;height:0!important}.sidebar{z-index:200;box-shadow:none;border-right:1px solid var(--card-border);transition:transform .3s cubic-bezier(.4,0,.2,1);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{box-shadow:var(--shadow-main);transform:translate(0)}.sidebar-backdrop{-webkit-backdrop-filter:blur(2px);z-index:199;opacity:0;pointer-events:none;background:#00000080;transition:opacity .3s;display:block;position:fixed;inset:0}.sidebar-backdrop.open{opacity:1;pointer-events:auto}.mobile-header{background:var(--card-bg);border:1px solid var(--card-border);-webkit-backdrop-filter:blur(20px);z-index:101;width:44px;height:44px;color:var(--text-main);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;display:flex;position:fixed;top:10px;left:10px;box-shadow:0 4px 15px #00000080}.page-header h2{font-size:var(--text-xl)}.page-header{flex-direction:column;align-items:flex-start!important;gap:var(--space-sm)!important}.page-header>div{width:100%;margin-left:0}.card .flex-row,.toolbar{flex-wrap:wrap;gap:var(--space-sm)!important}.form-actions{flex-direction:column;width:100%}.form-actions button{width:100%;margin-top:var(--space-sm);margin-left:0!important}.broadcast-layout{gap:var(--space-lg);flex-direction:column;display:flex!important}.modal{width:95vw!important;max-width:450px!important;padding:var(--space-lg)!important}table td,table th{padding:10px 8px!important}}.table-responsive{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.table-responsive table{min-width:650px}.redis-pulse-dot{border-radius:var(--radius-full);background:var(--color-good);width:8px;height:8px;animation:2s ease-in-out infinite redisPulse;display:inline-block;box-shadow:0 0 8px #52ffa880}@keyframes redisPulse{0%,to{opacity:1;box-shadow:0 0 8px #52ffa880}50%{opacity:.4;box-shadow:0 0 4px #52ffa833}}.redis-error-banner{background:var(--error-bg);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);color:var(--color-bad);font-size:var(--text-sm);margin-bottom:var(--space-lg);border:1px solid #ff5c7a4d}.badge-platform-telegram{color:#26a6fe;background:#26a6fe1f}.badge-platform-telegram:before{background:#26a6fe}.badge-platform-max{color:#a855f7;background:#a855f71f}.badge-platform-max:before{background:#a855f7}.badge-processing{background:var(--accent-dim);color:var(--accent)}.badge-processing:before{background:var(--accent);animation:1.5s infinite pulse}.badge-retrying{background:var(--warning-bg);color:var(--color-warn)}.badge-retrying:before{background:var(--color-warn);animation:1s infinite pulse}.badge-delayed{color:#ffa03c;background:#ffa03c1f}.badge-delayed:before{background:#ffa03c}.badge-success{background:var(--success-bg);color:var(--color-good)}.badge-success:before{background:var(--color-good)}.badge-scheduled{color:#3898ff;background:#3898ff1f}.badge-scheduled:before{background:#3898ff;animation:2s infinite pulse}.badge-running{color:var(--color-good);background:#52ffa81f}.badge-running:before{background:var(--color-good);animation:1.5s infinite pulse}.badge-active{color:#38bdf8;background:#38bdf81f}.badge-active:before{background:#38bdf8;animation:2.5s infinite pulse}.badge-warn{background:var(--warning-bg);color:var(--color-warn)}.badge-warn:before{background:var(--color-warn)}.redis-live-layout{gap:var(--space-lg);grid-template-columns:1fr 420px;align-items:start;display:grid}@media (width<=1100px){.redis-live-layout{grid-template-columns:1fr}}.broadcast-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:var(--space-lg);cursor:pointer;margin-bottom:var(--space-md);transition:border-color .2s,box-shadow .2s,transform .15s}.broadcast-card:hover{border-color:var(--accent);box-shadow:0 0 20px rgba(var(--accent-rgb), .1);transform:translateY(-1px)}.broadcast-card.expanded{border-color:var(--accent);box-shadow:0 0 24px rgba(var(--accent-rgb), .15)}.broadcast-card-top{align-items:center;gap:var(--space-lg);display:flex}.broadcast-card-info{flex:1;min-width:0}.broadcast-card-name{font-size:var(--text-lg);color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px;font-weight:700;overflow:hidden}.broadcast-card-meta{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.broadcast-card-id{font-family:JetBrains Mono,Fira Code,monospace;font-size:var(--text-xs);color:var(--text-muted-2)}.broadcast-card-stats{gap:var(--space-sm);margin-top:var(--space-md);grid-template-columns:repeat(3,1fr);display:grid}.bc-stat{flex-direction:column;gap:4px;display:flex}.bc-stat-header{justify-content:space-between;align-items:baseline;display:flex}.bc-stat-label{font-size:var(--text-xs);color:var(--text-muted)}.bc-stat-value{font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:700}.bc-stat-bar{background:#ffffff0f;border-radius:2px;height:4px;overflow:hidden}.bc-stat-bar-fill{border-radius:2px;height:100%;transition:width .6s}.bc-stat-bar-fill.sent{background:var(--color-good)}.bc-stat-bar-fill.errors{background:var(--color-bad)}.bc-stat-bar-fill.blocked{background:#f59e0b}.progress-ring-wrap{flex-shrink:0;width:72px;height:72px;position:relative}.progress-ring-svg{transform:rotate(-90deg)}.progress-ring-bg{stroke:#ffffff0f;fill:none}.progress-ring-fg{fill:none;stroke-linecap:round;transition:stroke-dashoffset .6s}.progress-ring-text{color:var(--text-main);letter-spacing:-.03em;flex-direction:column;justify-content:center;align-items:center;font-size:15px;font-weight:800;line-height:1;display:flex;position:absolute;inset:0}.progress-ring-sub{color:var(--text-muted);letter-spacing:0;margin-top:2px;font-size:9px;font-weight:500}.broadcast-card-actions{gap:var(--space-xs);flex-shrink:0;display:flex}.batch-inline-panel{opacity:0;max-height:0;margin-top:0;transition:max-height .4s,opacity .3s,margin .3s;overflow:hidden}.batch-inline-panel.open{opacity:1;max-height:2000px;margin-top:var(--space-md)}.batch-inline-header{padding-bottom:var(--space-sm);border-bottom:1px solid var(--card-border);margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.batch-inline-list{flex-direction:column;gap:6px;max-height:360px;display:flex;overflow-y:auto}.batch-row{gap:var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-sm);background:#ffffff05;border:1px solid #0000;grid-template-columns:100px 80px 60px 1fr auto;align-items:center;padding:8px 12px;transition:background .15s;display:grid}.batch-row:hover{border-color:var(--card-border);background:#ffffff0a}.batch-row-id{font-family:JetBrains Mono,Fira Code,monospace;font-size:var(--text-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.batch-row-error{font-size:var(--text-xs);color:var(--color-bad);text-overflow:ellipsis;white-space:nowrap;cursor:help;overflow:hidden}.batch-row-actions{gap:4px;display:flex}.batch-row-actions .btn{min-width:24px;padding:3px 7px;font-size:11px}.live-log-card{border:1px solid var(--card-border);border-radius:var(--radius-lg);background:#0a0e16;flex-direction:column;max-height:calc(100vh - 240px);display:flex;position:sticky;top:24px;overflow:hidden}.live-log-header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid #ffffff0f;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.live-log-title{align-items:center;gap:var(--space-sm);font-size:var(--text-sm);color:var(--text-main);font-weight:600;display:flex}.live-log-dot{background:var(--color-good);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite redisPulse}.live-log-dot.disconnected{background:var(--color-bad);animation:none}.live-log-controls{align-items:center;gap:var(--space-xs);display:flex}.live-progress-sticky{z-index:10;padding:var(--space-sm) var(--space-lg) 0;background:#0a0e16;position:sticky;top:0}.live-progress-card{border-radius:var(--radius-md);margin-bottom:var(--space-sm);font-family:var(--font-sans);background:#ffffff08;border:1px solid #ffffff14;padding:8px 12px}.live-progress-header{justify-content:space-between;margin-bottom:4px;display:flex}.live-progress-title{font-size:var(--text-sm);color:var(--accent);font-weight:600}.live-progress-time{font-size:var(--text-xs);color:var(--text-muted-2);font-family:JetBrains Mono,monospace}.live-progress-stats{font-size:var(--text-sm);color:var(--text-main)}.live-progress-divider{height:1px;margin:var(--space-sm) 0;background:#ffffff0f}.live-log-body{padding:var(--space-sm) 0;flex:1;min-height:200px;font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace;font-size:12px;line-height:1.65;overflow-y:auto}.log-entry{gap:var(--space-sm);padding:2px var(--space-lg);animation:.3s logFadeIn;display:flex}.log-entry:hover{background:#ffffff08}@keyframes logFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.log-time{color:var(--text-muted-2);white-space:nowrap;flex-shrink:0}.log-level{text-align:center;flex-shrink:0;width:50px;font-weight:700}.log-level.success{color:var(--color-good)}.log-level.error{color:var(--color-bad)}.log-level.info{color:var(--accent)}.log-level.warn{color:var(--color-warn)}.log-message{color:var(--text-muted);word-break:break-word}.log-message strong{color:var(--text-main);font-weight:600}.log-empty{padding:var(--space-xl);color:var(--text-muted-2);font-family:var(--font-sans);justify-content:center;align-items:center;gap:var(--space-sm);flex-direction:column;display:flex}.log-empty-icon{opacity:.5;font-size:28px}.redis-project-card{margin-bottom:var(--space-lg)}.batch-actions{gap:var(--space-xs);display:flex}.batch-actions .btn{font-size:var(--text-xs);min-width:28px;padding:4px 8px}
