:root{--bg: #f7f9ff;--sidebar: #4C1D95;--sidebar-2: #312E81;--card: #ffffff;--card-2: #f8fafc;--border: #e8edf7;--text: #1b2436;--muted: #64748b;--primary: #8B5CF6;--primary-2: #38D6F5;--grad: linear-gradient(135deg, #38D6F5 0%, #9B7DF7 100%);--grad-soft: linear-gradient(135deg, #D6F5FF 0%, #EDE6FF 100%);--primary-weak: #F1EBFF;--ok: #3B6D11;--ok-bg: #EAF3DE;--danger: #A32D2D;--danger-bg: #FCEBEB;--warn: #BA7517;--warn-bg: #FAEEDA;--radius: 10px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#4c1d95,#312e81 60%,#1e1b4b);padding:20px}.login-card{width:380px;background:var(--card);border-radius:14px;padding:44px 36px;box-shadow:0 24px 64px #4c1d9559;text-align:center}.login-logo{width:56px;height:56px;margin:0 auto 14px;border-radius:14px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px}.login-logo.has-logo{background:none}.login-card h1{font-size:20px;color:var(--text);margin-bottom:4px}.login-card .sub{color:var(--muted);font-size:13px;margin-bottom:26px}.login-card label{display:block;text-align:left;margin-bottom:16px;font-size:13px;color:var(--muted)}.login-card input{width:100%;margin-top:6px;padding:11px 14px;border:1px solid var(--border);border-radius:8px;background:var(--card-2);color:var(--text);font-size:14px;transition:border .15s}.login-card input:focus{outline:none;border-color:var(--primary);background:#fff}.login-card button{width:100%;padding:12px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s}.login-card button:hover{background:var(--primary-2)}.login-card button:disabled{opacity:.6;cursor:not-allowed}.layout{display:flex;min-height:100vh}.sidebar{width:232px;background:linear-gradient(180deg,#38d6f5,#7fa9f6 48%,#9b7df7);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;flex-shrink:0}.brand{display:flex;gap:12px;align-items:center;padding:22px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-logo{width:42px;height:42px;border-radius:12px;background:#ffffff2e;display:flex;align-items:center;justify-content:center;font-size:24px}.brand-text{display:flex;flex-direction:column}.brand-text strong{font-size:16px;font-weight:500;color:#fff}.brand-text span{font-size:12px;color:#ffffffbf}nav{flex:1;min-height:0;padding:14px 12px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}nav::-webkit-scrollbar{width:4px}nav::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:4px}nav::-webkit-scrollbar-track{background:transparent}.menu{display:flex;align-items:center;gap:12px;padding:11px 14px;color:#ffffffd1;cursor:pointer;border-radius:8px;font-size:14px;transition:all .15s}.menu:hover{background:#ffffff1f;color:#fff}.menu.active{background:#ffffff38;color:#fff;font-weight:500;box-shadow:inset 3px 0 #fff}.menu-icon{width:18px;height:18px;flex-shrink:0;background:center/contain no-repeat}.sidebar-foot{padding:16px;border-top:1px solid rgba(255,255,255,.08)}.admin-card{display:flex;gap:10px;align-items:center;margin-bottom:12px}.avatar{width:40px;height:40px;border-radius:12px;background:#ffffff2e;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:500;font-size:16px;flex-shrink:0}.admin-meta{display:flex;flex-direction:column;gap:5px;min-width:0}.admin-meta strong{font-size:13px;color:#fff;font-weight:500;line-height:1.1}.role-badge{display:inline-flex;align-items:center;align-self:flex-start;font-size:11px;line-height:1;padding:3px 8px;border-radius:999px;font-weight:500}.role-badge.super{background:#ffffff38;color:#fff}.role-badge.normal{background:#ffffff1a;color:#ffffffb8}.logout{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;padding:9px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:9px;color:#ffffffe0;cursor:pointer;font-size:13px;transition:all .15s}.logout:hover{background:#ff63632e;border-color:#ff787866;color:#fff}.logout-ic{display:block}.main{flex:1;padding:0 28px 28px;overflow:auto;background:var(--bg)}.topbar{display:flex;justify-content:space-between;align-items:center;padding:22px 0 18px}.topbar h2{font-size:20px;font-weight:500;color:var(--text)}.topbar-tip{color:var(--muted);font-size:13px}.content{padding-top:4px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:20px}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;gap:16px;align-items:center;transition:box-shadow .15s}.stat-card:hover{box-shadow:0 4px 16px #4c1d951a}.stat-icon{width:42px;height:42px;border-radius:12px;background-color:var(--primary-weak);background-size:22px;background-position:center;background-repeat:no-repeat;flex-shrink:0}.stat-value{font-size:26px;font-weight:500;color:var(--text)}.stat-label{color:var(--muted);font-size:13px}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.panel h3{margin-bottom:8px;font-size:15px;font-weight:500}.muted{color:var(--muted)}.small{font-size:12px}.loading{color:var(--muted);padding:24px;text-align:center}.toolbar{display:flex;gap:10px;margin-bottom:16px}.toolbar input{flex:1;max-width:320px;padding:10px 14px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);font-size:14px}.toolbar input:focus{outline:none;border-color:var(--primary)}button{padding:9px 18px;background:var(--primary);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:13px;transition:background .15s}button:hover{background:var(--primary-2)}button:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:5px 12px;font-size:12px;margin-right:6px}.btn-sm:hover{filter:brightness(1.08)}.btn-sm.ok{background:var(--ok)}.btn-sm.danger{background:var(--danger)}.btn-ghost{background:var(--card);border:1px solid var(--border);color:var(--muted)}.btn-ghost:hover{background:var(--card-2)}.alert{padding:11px 14px;border-radius:8px;margin-bottom:14px;font-size:13px}.alert.err{background:var(--danger-bg);color:var(--danger);border:1px solid #F7C1C1}.alert.ok{background:var(--ok-bg);color:var(--ok);border:1px solid #C0DD97}.tbl{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.tbl th,.tbl td{padding:13px 14px;text-align:left;border-bottom:1px solid var(--border);font-size:13px}.tbl th{background:var(--card-2);color:var(--muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.tbl tr:last-child td{border-bottom:none}.tbl tbody tr:hover td{background:#f8fafc}.tag{display:inline-block;padding:3px 9px;border-radius:10px;font-size:12px;font-weight:500}.tag.ok{background:var(--ok-bg);color:var(--ok)}.tag.bad{background:var(--danger-bg);color:var(--danger)}.tag.warn{background:var(--warn-bg);color:var(--warn)}.tag.info{background:#e8f1ff;color:#2563eb}.pager{display:flex;gap:10px;align-items:center;margin-top:14px;color:var(--muted);font-size:13px}.pager button{background:var(--card);border:1px solid var(--border);color:var(--text);padding:7px 14px}.pager button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.tabs{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}.tab{padding:8px 18px;border:1px solid var(--border);border-radius:8px;color:var(--muted);cursor:pointer;font-size:13px;background:var(--card);transition:all .15s}.tab:hover{border-color:var(--primary);color:var(--primary)}.tab.active{background:var(--grad);color:#fff;border-color:transparent}.gift-img{width:38px;height:38px;object-fit:cover;border-radius:6px;background:var(--card-2);border:1px solid var(--border)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#4c1d9580;display:flex;align-items:center;justify-content:center;z-index:100}.modal{width:440px;max-width:92vw;background:var(--card);border-radius:14px;padding:26px;box-shadow:0 24px 64px #4c1d9540}.modal h3{margin-bottom:18px;font-size:16px;font-weight:500}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{display:block;font-size:12px;color:var(--muted)}.form-grid input,.form-grid select{width:100%;margin-top:6px;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--card-2);color:var(--text);font-size:13px}.form-grid input:focus,.form-grid select:focus{outline:none;border-color:var(--primary);background:#fff}.modal-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.cfg-list{display:flex;flex-direction:column;gap:12px}.cfg-row{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px}.cfg-info{display:flex;flex-direction:column;gap:2px}.cfg-info strong{font-size:14px;font-weight:500}.cfg-info span{font-size:12px}.cfg-input{display:flex;gap:10px;align-items:center}.cfg-input input{width:130px;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--card-2);color:var(--text);font-size:13px}.cfg-input input:focus{outline:none;border-color:var(--primary)}.saved-tag{color:var(--ok);font-size:12px;padding:7px 12px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px}.card h3{margin-bottom:12px;font-size:15px;font-weight:500}.sms-card{border:1px solid var(--border)}.sms-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:18px;border-bottom:1px solid var(--border)}.sms-head h3{margin-bottom:6px}.sms-head p{font-size:13px}.sms-head code{background:var(--card-2);border:1px solid var(--border);border-radius:5px;padding:1px 6px;font-size:12px;color:var(--primary)}.sms-fields{margin-top:18px;display:flex;flex-direction:column;gap:14px}.frow{display:flex;gap:14px;align-items:center}.frow label{width:150px;flex-shrink:0;font-size:13px;color:var(--muted)}.frow input{flex:1;padding:10px 13px;border:1px solid var(--border);border-radius:8px;background:var(--card-2);color:var(--text);font-size:13px}.frow input:focus{outline:none;border-color:var(--primary);background:#fff}.sms-actions{margin-top:6px}.hint{margin-top:6px;font-size:12px;color:var(--warn);background:var(--warn-bg);border:1px solid #F0D6B8;border-radius:8px;padding:9px 12px}.hint code{color:var(--warn);font-weight:600}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px}.toggle-info{display:flex;flex-direction:column;gap:3px}.toggle-info strong{font-size:14px;font-weight:500}.toggle-info span{font-size:12px;color:var(--muted)}.switch{position:relative;width:46px;height:26px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.switch .slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#cbd5e1;border-radius:999px;transition:background .2s;cursor:pointer}.switch .slider:before{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform .2s;box-shadow:0 1px 3px #0003}.switch input:checked+.slider:before{transform:translate(20px)}.toggle-state{font-size:12px;font-weight:500;min-width:52px;text-align:center}.toggle-state.on{color:var(--ok)}.toggle-state.off{color:var(--muted)}@media (max-width: 860px){.layout{flex-direction:column}.sidebar{width:100%;height:auto;position:static}nav{flex-direction:row;overflow-x:auto}.menu{white-space:nowrap}.main{padding:0 16px 16px}.card-grid{grid-template-columns:1fr 1fr}}@media (max-width: 520px){.card-grid,.form-grid{grid-template-columns:1fr}.cfg-row,.toggle-row{flex-direction:column;align-items:flex-start}}@media (min-width: 861px){.card-grid.c5{grid-template-columns:repeat(5,1fr)}}.thumb{width:44px;height:44px;border-radius:6px;object-fit:cover;display:block;background:var(--border, #eee)}.thumb-lg{width:120px;height:120px;border-radius:8px;object-fit:cover;display:block;background:var(--border, #eee)}.thumb-txt{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:6px;background:#5b8ff9;color:#fff;font-size:18px;font-weight:600}.actions{white-space:nowrap}.actions .btn-sm{margin-right:6px}.ellipsis{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag.vip{background:#fff7e6;color:#d48806;margin-left:6px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.modal.wide{width:720px;max-width:94vw}.modal{max-height:88vh;overflow-y:auto}.modal.wide{width:min(780px,94vw)}.modal-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px 16px}.modal-form .field{display:flex;flex-direction:column;gap:6px;min-width:0}.modal-form .field.full{grid-column:1 / -1}.modal-form .field>label{font-size:12px;color:var(--muted)}.modal-form .field input,.modal-form .field select,.modal-form .field textarea{width:100%;box-sizing:border-box;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--card-2);color:var(--text);font-size:13px}.modal-form .field input:focus,.modal-form .field select:focus,.modal-form .field textarea:focus{outline:none;border-color:var(--primary);background:#fff}.modal-form .field textarea{resize:vertical;min-height:62px;line-height:1.5}.field-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.field-inline input[type=text],.field-inline input:not([type=file]){flex:1;min-width:160px}.btn-file{flex:none;cursor:pointer;display:inline-flex;align-items:center;padding:7px 14px;border-radius:8px;font-size:13px;white-space:nowrap;background:var(--primary-weak);color:var(--primary);border:1px solid var(--primary-weak);transition:filter .15s}.btn-file:hover{filter:brightness(.96)}.btn-file input[type=file]{display:none}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:14px;border-top:1px solid var(--border)}.form-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-6px 0 16px;font-size:12px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.stat-card.col{flex-direction:column;align-items:flex-start;gap:6px}.stat-card.col .stat-value{font-size:24px}.stat-grid .stat-card{min-height:136px;box-sizing:border-box}.stat-grid.two{grid-template-columns:1fr 1fr}.stat-card.row{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:20px 22px}.stat-card.row .stat-value{font-size:26px}@media (max-width: 900px){.stat-grid.two{grid-template-columns:1fr}}.btn-sm.primary{background:var(--grad);color:#fff}.btn-sm.primary:hover{background:var(--primary-2)}.logo-bubble{width:22px;height:22px;background:center/contain no-repeat;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M20 13.5a2.5 2.5 0 0 1-2.5 2.5H9l-5 4V6.5A2.5 2.5 0 0 1 6.5 4h11A2.5 2.5 0 0 1 20 6.5z'/></svg>")}.ic-dashboard{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='4' width='7' height='7' rx='1.8'/><rect x='13' y='4' width='7' height='7' rx='1.8'/><rect x='4' y='13' width='7' height='7' rx='1.8'/><rect x='13' y='13' width='7' height='7' rx='1.8'/></svg>")}.ic-users{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='8' r='3.4'/><path d='M5.5 19.5c0-3.4 2.9-5.3 6.5-5.3s6.5 1.9 6.5 5.3'/></svg>")}.ic-groups{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='8.5' r='3'/><path d='M3.8 19c0-3 2.3-4.8 5.2-4.8s5.2 1.8 5.2 4.8'/><path d='M15.5 5.9a3 3 0 0 1 0 5.2M17.2 14.5c1.9.7 3.2 2.2 3.2 4.5'/></svg>")}.ic-gifts{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='8.5' width='16' height='4' rx='1.2'/><path d='M5.5 12.5v6a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-6M12 8.5v12M12 8.5c-1.8 0-4.3-.5-4.3-2.4C7.7 4.5 8.9 3.8 9.9 3.8c1.4 0 2.1 2.2 2.1 4.7zm0 0c1.8 0 4.3-.5 4.3-2.4 0-1.6-1.2-2.3-2.2-2.3-1.4 0-2.1 2.2-2.1 4.7z'/></svg>")}.ic-album{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='3.5' y='5' width='17' height='14' rx='2.5'/><circle cx='9' cy='10' r='1.6'/><path d='M4.5 17.5l4.5-4.5 3.5 3.5 3-3 4 4'/></svg>")}.ic-moments{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M15.6 8.4 13.2 13.2 8.4 15.6l2.4-4.8z'/></svg>")}.ic-vip{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M4 8l4.2 3.8L12 5.5l3.8 6.3L20 8l-1.6 9.5H5.6z'/></svg>")}.ic-finance{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='3.5' y='6' width='17' height='13' rx='2.5'/><path d='M3.5 10.5h17'/><circle cx='16.5' cy='15' r='1.3'/></svg>")}.ic-messages{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M20 13.5a2.5 2.5 0 0 1-2.5 2.5H9l-5 4V6.5A2.5 2.5 0 0 1 6.5 4h11A2.5 2.5 0 0 1 20 6.5z'/></svg>")}.ic-relations{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M12 20l-1.4-1.3C5.6 14.2 3 11.6 3 8.5 3 6 5 4 7.5 4c1.7 0 3.3.8 4.5 2.2C13.2 4.8 14.8 4 16.5 4 19 4 21 6 21 8.5c0 3.1-2.6 5.7-7.6 10.2z'/></svg>")}.ic-reports{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M5.5 21V4'/><path d='M5.5 5h12.5l-3 4 3 4H5.5'/></svg>")}.ic-config{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M4 7.5h9M17.5 7.5H20M4 16.5h4.5M13 16.5h7'/><circle cx='15' cy='7.5' r='2'/><circle cx='10.5' cy='16.5' r='2'/></svg>")}.ic-agreement{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M7.5 3.5h6.5l4.5 4.5v11a1.5 1.5 0 0 1-1.5 1.5H7.5A1.5 1.5 0 0 1 6 19V5a1.5 1.5 0 0 1 1.5-1.5z'/><path d='M14 3.5V8h4.5M9.5 12.5h5M9.5 16h5'/></svg>")}.ic-admins{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3l7.5 2.8v6c0 4.4-3.2 7.5-7.5 9.2-4.3-1.7-7.5-4.8-7.5-9.2v-6z'/><path d='M9 12l2.2 2.2 4-4.2'/></svg>")}.ic-sensitive-words{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3l7.5 2.8v6c0 4.4-3.2 7.5-7.5 9.2-4.3-1.7-7.5-4.8-7.5-9.2v-6z'/><path d='M9 9.5l6 4.5M15 9.5l-6 4.5'/></svg>")}.ic-s-users{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238B5CF6' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='8' r='3.4'/><path d='M5.5 19.5c0-3.4 2.9-5.3 6.5-5.3s6.5 1.9 6.5 5.3'/></svg>")}.ic-s-today{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238B5CF6' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M3.5 17l6-6 4 4 7-7.5'/><path d='M14.5 7.5H20V13'/></svg>")}.ic-s-groups{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238B5CF6' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M20 13.5a2.5 2.5 0 0 1-2.5 2.5H9l-5 4V6.5A2.5 2.5 0 0 1 6.5 4h11A2.5 2.5 0 0 1 20 6.5z'/></svg>")}.ic-s-msg{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238B5CF6' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='3.5' y='5.5' width='17' height='13' rx='2.5'/><path d='M4.5 7.5l7.5 5.5 7.5-5.5'/></svg>")}.ic-s-clock{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238B5CF6' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='8.5'/><path d='M12 7.5V12l3 2'/></svg>")}:where(input[type=text],input[type=search],input[type=number],input[type=password],input[type=date],input:not([type]),select,textarea){padding:8px 12px;border:1px solid var(--border);border-radius:8px;background-color:var(--card);color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}:where(input[type=text],input[type=search],input[type=number],input[type=password],input[type=date],input:not([type]),select,textarea):focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-weak)}:where(input)::placeholder{color:var(--muted);opacity:1}:where(select){-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:32px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 10px center;background-size:14px}:where(input[type=date])::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}:where(input[type=date])::-webkit-calendar-picker-indicator:hover{opacity:.9}.form-grid select,.modal-form .field select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 10px center;background-size:14px;padding-right:32px}.perm-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.perm-chip{position:relative;display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--border);border-radius:999px;background:var(--card-2);color:var(--muted);font-size:13px;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:border-color .15s,background .15s,color .15s}.perm-chip input{position:absolute;opacity:0;pointer-events:none}.perm-chip:hover{border-color:var(--primary);color:var(--primary)}.perm-chip:has(input:checked){background:var(--primary-weak);border-color:var(--primary);color:var(--primary);font-weight:500}.perm-chip:has(input:checked):before{content:"";width:12px;height:12px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238B5CF6' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'/></svg>") center/contain no-repeat}.pay-card{margin-top:12px;border-left:3px solid transparent;transition:border-color .2s}.pay-card-on{border-left-color:var(--primary)}.pay-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.pay-head-txt{min-width:0}.pay-head-ctrl{display:flex;align-items:center;gap:10px;flex-shrink:0;padding-top:2px}.pay-state{display:inline-block;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}.pay-state.on{background:var(--primary-weak);color:var(--primary)}.pay-state.off{background:#f1f5f9;color:var(--muted)}.pay-body{margin-top:14px;transition:opacity .2s}.pay-body-off{opacity:.6}.pay-hint-off{margin-top:10px;padding:8px 12px;border-radius:8px;background:var(--card-2);color:var(--muted);font-size:12px}.pay-summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.switch input:checked+.slider{background:var(--grad)}.rt-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}.rt-head-left{display:flex;align-items:center;gap:12px}.rt-title{font-size:16px;font-weight:500;color:var(--text)}.live-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 9px;border-radius:999px;background:var(--ok-bg);color:var(--ok);font-size:12px;font-weight:600;letter-spacing:.02em}.live-dot{width:8px;height:8px;border-radius:50%;background:#3b6d11;box-shadow:0 0 #3b6d1180;animation:livePulse 1.6s infinite}@keyframes livePulse{0%{box-shadow:0 0 #3b6d1180}70%{box-shadow:0 0 0 7px #3b6d1100}to{box-shadow:0 0 #3b6d1100}}.rt-hint{color:var(--muted);font-size:12px}.stat-card.live{border-left:4px solid var(--primary)}.stat-card.live .stat-value{color:var(--primary)}.stat-card.live.warn .stat-value{color:var(--warn)}.uptime-banner{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;padding:18px 22px;margin-bottom:20px;background:linear-gradient(120deg,var(--primary-weak) 0%,var(--card) 72%);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--radius)}.uptime-ring{position:relative;width:84px;height:84px;flex-shrink:0}.uptime-ring-clock{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;animation:ringPulse 2.4s ease-in-out infinite}@keyframes ringPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.uptime-main{flex:1;min-width:0}.uptime-label{color:var(--muted);font-size:13px;margin-bottom:2px}.uptime-start{color:var(--muted);font-size:12px;margin-bottom:8px;font-variant-numeric:tabular-nums}.uptime-value{display:flex;align-items:baseline;gap:16px;color:var(--primary);line-height:1}.uptime-value .up-inline{font-size:22px;font-weight:500;font-variant-numeric:tabular-nums}.uptime-value .up-inline i{font-size:13px;color:var(--muted);font-style:normal;font-weight:400;margin-left:3px}.uptime-value .up-inline-sec{color:var(--primary-2)}.uptime-status{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;background:var(--ok-bg);color:var(--ok);font-size:13px;font-weight:600;white-space:nowrap}.kv-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:4px 0 18px}.kv-row{background:#f8f9fd;border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;gap:4px}.kv-k{color:var(--muted);font-size:12px}.kv-v{font-size:13px;font-weight:500;color:var(--text);text-align:left;word-break:break-all}.bar-wrap{margin-top:6px}.bar-wrap+.bar-wrap{margin-top:16px}.bar-head{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:7px}.bar-head b{color:var(--text);font-weight:500}.bar{height:10px;border-radius:999px;background:#eef1f8;overflow:hidden}.bar-fill{height:100%;border-radius:999px;transition:width .4s}.bar-warn{color:var(--warn)}.bar-danger{color:var(--danger)}
