:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#0f172a;background:#f6f7fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg: #f6f7fb;--surface: #ffffff;--text: #0f172a;--muted: #475569;--border: rgba(15, 23, 42, .12);--shadow: 0 16px 50px rgba(15, 23, 42, .12);--primary: #4f46e5;--primary-hover: #4338ca}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;color:var(--text);background:var(--bg)}a{color:inherit;text-decoration:none}.btn{border:1px solid var(--border);background:#ffffffb3;color:var(--text);border-radius:10px;padding:10px 12px;cursor:pointer;transition:transform .12s ease,background .12s ease,border-color .12s ease}.btn:hover{background:#ffffffe6;transform:translateY(-1px)}.btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.btn.primary{background:var(--primary);color:#fff;border-color:#4f46e5cc}.btn.primary:hover{background:var(--primary-hover)}.btn.secondary{background:transparent}.btn.secondary:hover{background:#0f172a0a}#root{min-height:100vh}.particlesWrap{position:fixed;inset:0;z-index:0;pointer-events:none}.particlesWrap canvas{width:100%!important;height:100%!important}.authPage{min-height:100vh;position:relative;background:radial-gradient(1200px 600px at 10% 0%,rgba(79,70,229,.16) 0%,transparent 65%),radial-gradient(900px 500px at 90% 20%,rgba(14,165,233,.12) 0%,transparent 65%),var(--bg)}.authContent{position:relative;z-index:1;min-height:100vh;display:grid;place-items:center;padding:28px 18px}.authCard{width:100%;max-width:420px;background:#ffffffc7;border:1px solid var(--border);border-radius:14px;padding:22px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.authBrand{font-weight:800;letter-spacing:.3px;color:var(--text)}.authTitle{margin:10px 0 6px;font-size:22px}.authSubtitle{margin:0 0 14px;color:var(--muted);font-size:13px}.loginForm{display:grid;gap:12px}.field{display:grid;gap:6px}.field span{font-size:12px;color:var(--muted)}.field input{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--border);background:#ffffffe6;color:var(--text);outline:none}.field input:focus{border-color:#4f46e599;box-shadow:0 0 0 4px #4f46e524}.password-field .input-container{position:relative}.password-field input{padding-right:60px}.visibility-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:4px;border-radius:4px}.visibility-btn:hover{color:var(--text);background:#0000000d}.error{padding:10px 12px;border-radius:10px;border:1px solid rgba(220,38,38,.35);background:#dc262614;color:#991b1b}.page{min-height:100vh;background:radial-gradient(1200px 600px at 10% 0%,rgba(79,70,229,.18) 0%,transparent 65%),radial-gradient(900px 500px at 90% 20%,rgba(14,165,233,.14) 0%,transparent 65%),var(--bg);color:var(--text)}.topbar{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--border);background:#ffffff8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brandTitle{font-weight:700;letter-spacing:.2px}.brandSubtitle{color:var(--muted);font-size:12px;margin-top:2px}.userArea{display:flex;align-items:center;gap:14px}.userMeta{text-align:right;line-height:1.1}.userEmail{font-size:12px;color:var(--muted)}.userRole{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.content{max-width:900px;margin:0 auto;padding:28px 22px 60px}.pageTitle{margin:0 0 14px;font-size:22px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px;box-shadow:var(--shadow)}.codeBlock{margin:0;white-space:pre-wrap;padding:12px;border-radius:10px;border:1px solid var(--border);background:#f8fafc;color:#0f172a;overflow:auto}.adminLayout{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.adminSidebar{position:sticky;top:0;height:100vh;padding:18px 14px;border-right:1px solid var(--border);background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.adminBrand{font-weight:900;letter-spacing:.2px;padding:10px 10px 14px}.adminNav{display:grid;gap:4px}.adminLink{padding:10px;border-radius:10px;color:var(--text);border:1px solid transparent}.adminLink:hover{background:#4f46e50f}.adminLink.active{background:#4f46e51f;border-color:#4f46e52e}.adminMain{min-width:0}.adminTopbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border);background:#f6f7fbbf;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.adminTopbarTitle{font-weight:700}.adminUser{display:flex;align-items:center;gap:12px}.adminUserMeta{text-align:right;line-height:1.1}.adminUserEmail{font-size:12px;color:var(--muted)}.adminUserRole{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.adminContent{padding:18px 18px 60px}@media(max-width:900px){.adminLayout{grid-template-columns:1fr}.adminSidebar{position:relative;height:auto;border-right:none;border-bottom:1px solid var(--border)}.adminNav{grid-template-columns:repeat(3,minmax(0,1fr))}}.sectionTitle{margin:0 0 12px;font-size:18px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gridCards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.statCard{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px;box-shadow:var(--shadow)}.statLabel{font-size:12px;color:var(--muted)}.statValue{margin-top:6px;font-size:22px;font-weight:800}.panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px;box-shadow:var(--shadow)}.chartsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.chartTitle{font-weight:900;margin-bottom:10px}.chartHint{font-size:12px;color:var(--muted);margin-top:-6px;margin-bottom:10px}@media(max-width:1100px){.chartsGrid{grid-template-columns:1fr}}.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px}.search{display:flex;gap:10px;align-items:center}.input{width:100%;max-width:360px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#ffffffe6;color:var(--text);outline:none}.input:focus{border-color:#4f46e599;box-shadow:0 0 0 4px #4f46e51f}.actions{display:flex;gap:8px;align-items:center}.btn.small{padding:8px 10px;border-radius:10px;font-size:12px}.btn.danger{background:#dc26261f;border-color:#dc262633;color:#991b1b}.btn.danger:hover{background:#dc262629}.formGrid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.formRow{display:grid;gap:6px}.formRow label{font-size:12px;color:var(--muted)}.select{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#ffffffe6;color:var(--text)}.select.narrow{max-width:360px}.table{width:100%;border-collapse:collapse;border:1px solid var(--border);border-radius:12px;overflow:hidden}.table th,.table td{padding:10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;font-size:13px}.snCol{width:56px;text-align:right}.table th{background:#f8fafc;color:var(--muted);font-weight:700}.table tr:hover td{background:#4f46e508}.truncate{max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.muted{color:var(--muted)}.errorText{color:#991b1b}@media(max-width:1100px){.gridCards{grid-template-columns:repeat(2,minmax(0,1fr))}}.modalOverlay{position:fixed;inset:0;background:#0f172a59;display:grid;place-items:center;padding:18px;z-index:50}.modal{width:100%;max-width:720px;max-height:calc(100vh - 36px);background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);display:flex;flex-direction:column}.modalHeader{padding:14px 14px 10px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}.modalTitle{font-weight:900}.modalBody{padding:14px;overflow:auto}.psWrap{position:relative}.psButton{width:100%;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:10px 64px 10px 12px;border-radius:10px;border:1px solid var(--border);background:#ffffffe6;cursor:pointer;position:relative}.psButtonText{font-weight:800;font-size:13px;color:var(--text);flex:1;text-align:left}.psChevron{font-size:12px;color:var(--muted);position:absolute;right:12px;top:50%;transform:translateY(-50%)}.psClear{position:absolute;right:36px;top:50%;transform:translateY(-50%);width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--border);background:#ffffffe6;border-radius:999px;cursor:pointer;color:var(--muted);z-index:2}.psClear:hover{background:#4f46e50f;color:var(--text)}.psDropdown{position:fixed;z-index:80;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.psSearch{padding:10px;border-bottom:1px solid var(--border);background:#f8fafc}.psSearchInput{max-width:100%}.psList{display:grid;overflow:auto}.psItem{text-align:left;border:none;background:transparent;padding:10px 12px;cursor:pointer}.psItem:hover{background:#4f46e50f}.psItem.active{background:#4f46e51f}.psItemTitle{font-weight:900;font-size:13px}.psEmpty{padding:10px 12px;font-size:12px;color:var(--muted)}.smsMulti{display:grid;gap:10px}.smsChips{display:flex;flex-wrap:wrap;gap:8px}.smsChip{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;border:1px solid var(--border);background:#4f46e514;color:var(--text);cursor:pointer}.smsChip:hover{background:#4f46e51f}.smsChipText{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.smsChipX{opacity:.8;font-weight:900}.smsInputRow{display:flex;gap:10px;align-items:center}.smsLoading{font-size:12px;color:var(--muted);white-space:nowrap}.smsDropdown{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.smsEmpty{padding:10px 12px;font-size:12px;color:var(--muted)}.smsList{display:grid}.smsItem{text-align:left;padding:10px 12px;border:none;background:transparent;cursor:pointer}.smsItem:hover{background:#4f46e50f}.smsItem.disabled{opacity:.6;cursor:not-allowed}.smsItemTitle{font-weight:800;font-size:13px}.smsItemMeta{margin-top:3px;display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted)}.tsWrap{position:relative}.tsButton{width:100%;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:10px 64px 10px 12px;border-radius:10px;border:1px solid var(--border);background:#ffffffe6;cursor:pointer;position:relative}.tsButtonText{font-weight:800;font-size:13px;color:var(--text);flex:1;text-align:left}.tsChevron{font-size:12px;color:var(--muted);position:absolute;right:12px;top:50%;transform:translateY(-50%)}.tsClear{position:absolute;right:36px;top:50%;transform:translateY(-50%);width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--border);background:#ffffffe6;border-radius:999px;cursor:pointer;color:var(--muted);z-index:2}.tsClear:hover{background:#4f46e50f;color:var(--text)}.tsDropdown{position:fixed;z-index:80;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.tsSearchInput{max-width:100%}.tsSearch{padding:10px;border-bottom:1px solid var(--border);background:#f8fafc}.tsList{display:grid;max-height:260px;overflow:auto}.tsItem{text-align:left;border:none;background:transparent;padding:10px 12px;cursor:pointer}.tsItem:hover{background:#4f46e50f}.tsItem.active{background:#4f46e51f}.tsItemTitle{font-weight:900;font-size:13px}.tsItemMeta{margin-top:3px;font-size:12px}.tsEmpty{padding:10px 12px;font-size:12px;color:var(--muted)}.smsToastWrap{position:fixed;top:14px;right:14px;z-index:50;max-width:min(420px,calc(100vw - 28px))}.smsToast{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border-radius:14px;border:1px solid var(--border);background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow);color:var(--text)}.smsToast.success{border-color:#22c55e59;background:#f0fdf4eb}.smsToast.error{border-color:#ef44444d;background:#fef2f2eb}.smsToastMessage{font-size:13px;font-weight:600}.smsToastClose{border:1px solid rgba(148,163,184,.35);background:#fffc;color:var(--muted);border-radius:10px;padding:6px 10px;cursor:pointer}.smsToastClose:hover{background:#0f172a0a}
