@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css");:root{--sidebar-width:256px;--topbar-height:60px;--color-primary:#6366f1;--color-primary-dark:#4f46e5;--color-primary-light:#eef2ff;--color-success:#10b981;--color-success-light:#d1fae5;--color-warning:#f59e0b;--color-warning-light:#fef3c7;--color-danger:#ef4444;--color-danger-light:#fee2e2;--color-info:#3b82f6;--color-info-light:#dbeafe;--sb-bg:#0f172a;--sb-border:#1e293b;--sb-text:#94a3b8;--sb-text-hover:#e2e8f0;--sb-text-active:#fff;--bg-page:#f1f5f9;--bg-card:#fff;--text-heading:#0f172a;--text-body:#334155;--text-muted:#94a3b8;--border:#e2e8f0;--shadow-xs:0 1px 2px rgba(0,0,0,.05);--shadow-sm:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 6px -1px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.04);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.08),0 4px 6px -2px rgba(0,0,0,.04);--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px}*,:after,:before{box-sizing:border-box}body,html{height:100%}body{background-color:var(--bg-page);color:var(--text-body);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}.app-wrapper,.main-content{display:flex;min-height:100vh}.main-content{margin-left:var(--sidebar-width);flex:1 1;flex-direction:column}.page-content{padding:24px 28px 40px;flex:1 1}.topbar{height:var(--topbar-height);background:var(--bg-card);border-bottom:1px solid var(--border);padding:0 24px;position:-webkit-sticky;position:sticky;top:0;z-index:50;box-shadow:var(--shadow-xs);gap:12px}.topbar,.topbar-actions{display:flex;align-items:center}.topbar-actions{margin-left:auto;gap:8px}.topbar-btn{width:34px;height:34px;border:none;background:#f1f5f9;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;font-size:13px;transition:background .15s,color .15s}.topbar-btn:hover{background:#e2e8f0;color:var(--text-body)}.topbar-avatar{width:32px;height:32px;background:linear-gradient(135deg,var(--color-primary),#8b5cf6);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;cursor:default}.topbar-username{font-size:13px;font-weight:500;color:var(--text-body)}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);background:var(--sb-bg);z-index:100;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--sb-border)}.sidebar::-webkit-scrollbar{width:3px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}.sb-brand{gap:11px;padding:18px 16px 16px;border-bottom:1px solid var(--sb-border)}.sb-brand,.sb-brand-icon{display:flex;align-items:center;flex-shrink:0}.sb-brand-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--color-primary) 0,#8b5cf6 100%);justify-content:center;font-size:16px;color:#fff}.sb-brand-name{font-size:15px;font-weight:700;color:#fff;letter-spacing:-.2px;line-height:1.2}.sb-brand-sub{font-size:11px;color:#475569;font-weight:400}.sb-section{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#475569;padding:18px 16px 6px;flex-shrink:0}.sb-nav{list-style:none;margin:0;padding:4px 8px}.sb-nav-item{margin-bottom:2px}.sb-nav-item a,.sb-nav-item button{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r-sm);color:var(--sb-text);text-decoration:none;font-size:13.5px;font-weight:500;transition:background .14s,color .14s;border:none;background:none;width:100%;cursor:pointer;text-align:left;line-height:1.4}.sb-nav-item a:hover,.sb-nav-item button:hover{background:#1e293b;color:var(--sb-text-hover);text-decoration:none}.sb-nav-item a.active{background:rgba(99,102,241,.15);color:var(--sb-text-active)}.sb-nav-item a.active .sb-icon{color:var(--color-primary)}.sb-icon{width:18px;text-align:center;font-size:13px;flex-shrink:0}.sb-nav-item.sb-danger button:hover{background:rgba(239,68,68,.12);color:#fca5a5}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;gap:16px;flex-wrap:wrap}.page-header-left h1{font-size:20px;font-weight:700;color:var(--text-heading);margin:0 0 2px}.page-header-left p{font-size:13px;color:var(--text-muted);margin:0}.card{border:1px solid var(--border)!important;border-radius:var(--r-lg)!important;box-shadow:var(--shadow-sm)!important;background:var(--bg-card)}.card-header{background:var(--bg-card)!important;border-bottom:1px solid var(--border)!important;border-radius:var(--r-lg) var(--r-lg) 0 0!important;padding:14px 20px!important;font-size:14px;font-weight:600;color:var(--text-heading)}.card-body{padding:20px!important}.card-footer{background:#f8fafc!important;border-top:1px solid var(--border)!important;border-radius:0 0 var(--r-lg) var(--r-lg)!important;padding:12px 16px!important}.stat-card{border:none!important;border-radius:var(--r-lg)!important;box-shadow:var(--shadow-md)!important;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)!important}.stat-card .card-body{padding:22px 22px 16px!important}.stat-card-users{background:linear-gradient(135deg,#667eea,#764ba2)}.stat-card-connectors{background:linear-gradient(135deg,#11998e,#38ef7d)}.stat-card-drafts{background:linear-gradient(135deg,#2193b0,#6dd5ed)}.stat-card-notifications{background:linear-gradient(135deg,#f7971e,#ffd200)}.stat-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:hsla(0,0%,100%,.75);margin-bottom:8px}.stat-value{font-size:38px;font-weight:800;color:#fff;line-height:1;margin-bottom:0}.stat-icon{width:50px;height:50px;background:hsla(0,0%,100%,.2);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff}.stat-footer{background:rgba(0,0,0,.12)!important;border-top:1px solid hsla(0,0%,100%,.1)!important;border-radius:0!important;padding:9px 22px!important;font-size:12px;color:hsla(0,0%,100%,.65)}.qa-card{border:1px solid var(--border);border-radius:var(--r-md);padding:16px;display:flex;align-items:center;gap:14px;background:var(--bg-card);transition:background .14s,box-shadow .14s,transform .14s;cursor:pointer}.qa-card,.qa-card:hover{text-decoration:none;color:var(--text-body)}.qa-card:hover{background:#f8fafc;box-shadow:var(--shadow-md);transform:translateY(-1px)}.qa-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.qa-icon-primary{background:var(--color-primary-light);color:var(--color-primary)}.qa-icon-success{background:var(--color-success-light);color:var(--color-success)}.qa-icon-info{background:var(--color-info-light);color:var(--color-info)}.qa-icon-warning{background:var(--color-warning-light);color:var(--color-warning)}.qa-label{font-size:13.5px;font-weight:600;color:var(--text-heading)}.qa-sub{font-size:12px;color:var(--text-muted)}.table{margin-bottom:0}.table thead th,.table-dark th{font-size:11.5px!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.05em!important;color:var(--text-muted)!important;background:#f8fafc!important;border-top:none!important;padding:11px 16px!important;white-space:nowrap}.table tbody td,.table thead th,.table-dark th{border-bottom:1px solid var(--border)!important}.table tbody td{padding:13px 16px!important;vertical-align:middle;color:var(--text-body);font-size:13.5px;background:var(--bg-card)}.table tbody tr:last-child td{border-bottom:none!important}.table-hover tbody tr:hover td{background:#f8fafc!important}.table-striped>tbody>tr:nth-of-type(odd)>*{background-color:transparent!important}.badge{padding:4px 10px!important;border-radius:20px!important;font-size:11px!important;font-weight:600!important;letter-spacing:.02em}.badge.bg-success{background:var(--color-success-light)!important;color:#065f46!important}.badge.bg-danger{background:var(--color-danger-light)!important;color:#991b1b!important}.badge.bg-warning{background:var(--color-warning-light)!important;color:#92400e!important}.badge.bg-info{background:var(--color-info-light)!important;color:#1e40af!important}.badge.bg-primary{background:var(--color-primary-light)!important;color:#3730a3!important}.badge.bg-secondary{background:#f1f5f9!important;color:#475569!important}.btn{border-radius:var(--r-sm)!important;font-size:13.5px!important;font-weight:500!important;padding:8px 16px!important;transition:all .15s ease!important;display:inline-flex;align-items:center;gap:6px}.btn-primary{background:var(--color-primary)!important;border-color:var(--color-primary)!important;color:#fff!important}.btn-primary:focus,.btn-primary:hover{background:var(--color-primary-dark)!important;border-color:var(--color-primary-dark)!important}.btn-sm{padding:5px 11px!important;font-size:12px!important}.btn-lg{padding:11px 22px!important;font-size:15px!important}.btn-outline-primary{color:var(--color-primary)!important;border-color:var(--color-primary)!important}.btn-outline-primary:hover{background:var(--color-primary)!important;color:#fff!important}.form-control,.form-select{border-radius:var(--r-sm)!important;border-color:var(--border)!important;font-size:13.5px!important;padding:8px 13px!important;color:var(--text-body)!important;background-color:var(--bg-card)!important;transition:border-color .15s,box-shadow .15s!important}.form-control:focus,.form-select:focus{border-color:var(--color-primary)!important;box-shadow:0 0 0 3px rgba(99,102,241,.12)!important;outline:none!important}.form-label{font-size:13px!important;font-weight:500!important;color:var(--text-body)!important;margin-bottom:6px!important}.form-text{font-size:12px!important;color:var(--text-muted)!important}.search-wrap{position:relative}.search-wrap .search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:12px;pointer-events:none}.search-wrap .form-control{padding-left:32px!important}.alert{border-radius:var(--r-md)!important;border:none!important;font-size:13.5px}.alert-info{background:#eff6ff!important;color:#1e40af!important}.alert-danger{background:#fef2f2!important;color:#991b1b!important}.alert-success{background:#f0fdf4!important;color:#166534!important}.alert-warning{background:#fffbeb!important;color:#92400e!important}.pagination-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid var(--border);background:#f8fafc;border-radius:0 0 var(--r-lg) var(--r-lg);flex-wrap:wrap;gap:8px}.pagination-info{font-size:13px;color:var(--text-muted)}.pagination{margin:0;gap:3px}.page-item .page-link{border-radius:var(--r-sm)!important;border:1px solid var(--border)!important;color:var(--text-body)!important;font-size:13px!important;font-weight:500!important;padding:5px 11px!important;min-width:34px;text-align:center;background:var(--bg-card)!important;transition:all .13s ease;line-height:1.5}.page-item .page-link:hover{background:#f1f5f9!important;border-color:#cbd5e1!important}.page-item.active .page-link{background:var(--color-primary)!important;border-color:var(--color-primary)!important;color:#fff!important}.page-item.disabled .page-link{color:#cbd5e1!important;background:#f8fafc!important;pointer-events:none}.filter-bar{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 20px;margin-bottom:20px;box-shadow:var(--shadow-xs)}.modal-content{border:none!important;border-radius:var(--r-xl)!important;box-shadow:var(--shadow-lg)!important}.modal-header{border-bottom:1px solid var(--border)!important;padding:18px 24px!important}.modal-body{padding:24px!important}.modal-footer{border-top:1px solid var(--border)!important;padding:14px 24px!important}.modal-title{font-size:15px!important;font-weight:600!important;color:var(--text-heading)!important}.empty-state{padding:56px 24px;text-align:center}.empty-state-icon{font-size:44px;color:#cbd5e1;margin-bottom:16px}.empty-state h5{font-size:15px;font-weight:600;color:var(--text-body);margin-bottom:8px}.empty-state p{font-size:13.5px;color:var(--text-muted);max-width:320px;margin:0 auto 20px}.item-card{border-radius:var(--r-lg)!important;transition:transform .15s,box-shadow .15s}.item-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)!important}.type-icon{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:17px}.type-icon-email,.type-icon-smtp{background:var(--color-primary-light);color:var(--color-primary)}.type-icon-sms{background:var(--color-success-light);color:var(--color-success)}.type-icon-push{background:var(--color-warning-light);color:var(--color-warning)}.type-icon-telegram{background:var(--color-info-light);color:var(--color-info)}.login-page{min-height:100vh;display:flex}.login-aside{width:380px;flex-shrink:0;background:linear-gradient(160deg,#0f172a,#1e1b4b 60%,#312e81);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 40px;position:relative;overflow:hidden}.login-aside:before{width:320px;height:320px;background:rgba(99,102,241,.15);top:-80px;right:-80px}.login-aside:after,.login-aside:before{content:"";position:absolute;border-radius:50%;pointer-events:none}.login-aside:after{width:200px;height:200px;background:rgba(139,92,246,.1);bottom:-60px;left:-40px}.login-aside-content{position:relative;z-index:1;text-align:center}.login-logo{width:72px;height:72px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:30px;color:#fff;margin:0 auto 20px;box-shadow:0 8px 24px rgba(99,102,241,.4)}.login-aside h2{font-size:22px;font-weight:700;color:#fff;margin-bottom:10px}.login-aside p{font-size:14px;color:#94a3b8;line-height:1.6}.login-features{list-style:none;padding:0;margin:28px 0 0;text-align:left}.login-features li{display:flex;align-items:center;gap:10px;font-size:13px;color:#cbd5e1;margin-bottom:12px}.login-features li i{width:28px;height:28px;background:rgba(99,102,241,.2);border-radius:7px;font-size:12px;color:#a5b4fc;flex-shrink:0}.login-features li i,.login-main{display:flex;align-items:center;justify-content:center}.login-main{flex:1 1;background:var(--bg-page);padding:40px 24px}.login-card{width:100%;max-width:420px;background:var(--bg-card);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:40px 36px;border:1px solid var(--border)}.login-card h3{font-size:20px;font-weight:700;color:var(--text-heading);margin-bottom:6px}.login-card .subtitle{font-size:13.5px;color:var(--text-muted);margin-bottom:28px}.spinner-border{color:var(--color-primary)!important}.notif-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.notif-item:last-child{border-bottom:none}.notif-type-dot{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}.notif-body{flex:1 1;min-width:0}.notif-subject{font-size:13.5px;font-weight:600;color:var(--text-heading);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-recipient{font-size:12px;color:var(--text-muted);margin-bottom:4px}.notif-meta{display:flex;align-items:center;gap:8px}.placeholder-list{border:1px solid var(--border);border-radius:var(--r-md);padding:14px 16px;background:#f8fafc;margin-top:16px}.placeholder-list-title{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:10px;display:flex;align-items:center;gap:6px}.placeholder-chip{display:inline-flex;align-items:center;background:#1e1b4b;color:#a5b4fc;font-family:Courier New,Courier,monospace;font-size:12.5px;font-weight:600;padding:4px 11px;border-radius:7px;border:1px solid #312e81;line-height:1.4;-webkit-user-select:all;-moz-user-select:all;user-select:all}.placeholder-chip-brace{opacity:.45;font-size:11px}.placeholder-chip-empty{font-size:13px;color:var(--text-muted);font-style:italic}.placeholder-chip-empty code{font-size:12px;background:#e0e7ff;color:#4338ca;padding:1px 5px;border-radius:4px;font-style:normal}@media (max-width:991px){:root{--sidebar-width:220px}}@media (max-width:767px){.sidebar{transform:translateX(-100%)}.main-content{margin-left:0}.login-aside{display:none}.login-card{padding:28px 20px}}