.permission-page[data-v-6e40c25e]{padding:20px 24px;height:100%;overflow-y:auto;box-sizing:border-box}.stats-row[data-v-6e40c25e]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.stat-card[data-v-6e40c25e]{background:#fff;border-radius:14px;border:1px solid #f0f2f5;box-shadow:0 1px 3px rgba(0,0,0,.04);padding:18px 20px;display:flex;align-items:center;gap:14px;transition:all .25s ease}.stat-card[data-v-6e40c25e]:hover{box-shadow:0 4px 16px rgba(0,0,0,.06);transform:translateY(-1px)}.stat-icon[data-v-6e40c25e]{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon i[data-v-6e40c25e]{font-size:22px}.st-role[data-v-6e40c25e]{background:linear-gradient(135deg,#ede9fe,#ddd6fe)}.st-role i[data-v-6e40c25e]{color:#7c3aed}.st-menu[data-v-6e40c25e]{background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.st-menu i[data-v-6e40c25e]{color:#3b82f6}.st-assign[data-v-6e40c25e]{background:linear-gradient(135deg,#e8f5f1,#d4f0e8)}.st-assign i[data-v-6e40c25e]{color:#00b890}.stat-info[data-v-6e40c25e]{display:flex;flex-direction:column}.stat-value[data-v-6e40c25e]{font-size:24px;font-weight:700;color:#1a1a2e;line-height:1.2}.stat-label[data-v-6e40c25e]{font-size:12px;color:#8e8ea0;margin-top:2px}.main-layout[data-v-6e40c25e]{display:flex;gap:16px;flex:1;min-height:0}.panel-header[data-v-6e40c25e]{padding:16px 20px;border-bottom:1px solid #f0f2f5}.panel-header h4[data-v-6e40c25e]{margin:0;font-size:14px;font-weight:600;color:#1a1a2e;display:flex;align-items:center;gap:8px}.panel-header h4 i[data-v-6e40c25e]{color:#00b890;font-size:16px}.role-panel[data-v-6e40c25e]{background:#fff;border-radius:14px;border:1px solid #f0f2f5;box-shadow:0 1px 3px rgba(0,0,0,.04);width:280px;min-width:280px;display:flex;flex-direction:column;overflow:hidden}.role-list[data-v-6e40c25e]{flex:1;overflow-y:auto;padding:8px}.role-item[data-v-6e40c25e]{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;cursor:pointer;transition:all .25s ease;margin-bottom:4px}.role-item[data-v-6e40c25e]:hover{background:#f5f7fa}.role-item.active[data-v-6e40c25e]{background:linear-gradient(135deg,#e8f5f1,#d4f0e8)}.role-item.active .role-arrow[data-v-6e40c25e]{opacity:1;color:#00b890}.role-item.active .role-name[data-v-6e40c25e]{color:#00b890;font-weight:600}.role-avatar[data-v-6e40c25e]{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:700;flex-shrink:0}.role-info[data-v-6e40c25e]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.role-name[data-v-6e40c25e]{font-size:13px;color:#1a1a2e;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-count[data-v-6e40c25e]{font-size:11px;color:#8e8ea0}.role-arrow[data-v-6e40c25e]{font-size:12px;color:#c0c4cc;opacity:0;transition:all .25s ease}.list-empty[data-v-6e40c25e]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#c0c4cc}.list-empty i[data-v-6e40c25e]{font-size:36px;margin-bottom:8px}.list-empty span[data-v-6e40c25e]{font-size:13px}.perm-panel[data-v-6e40c25e]{background:#fff;border-radius:14px;border:1px solid #f0f2f5;box-shadow:0 1px 3px rgba(0,0,0,.04);flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.perm-placeholder[data-v-6e40c25e]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#c0c4cc}.perm-placeholder .placeholder-icon[data-v-6e40c25e]{width:80px;height:80px;border-radius:50%;background:#f5f7fa;display:flex;align-items:center;justify-content:center;margin-bottom:20px}.perm-placeholder .placeholder-icon i[data-v-6e40c25e]{font-size:36px;color:#d0d5dd}.perm-placeholder h3[data-v-6e40c25e]{margin:0 0 6px;font-size:16px;color:#1a1a2e}.perm-placeholder p[data-v-6e40c25e]{margin:0;font-size:13px;color:#8e8ea0}.perm-header[data-v-6e40c25e]{justify-content:space-between;flex-wrap:wrap}.perm-header-info[data-v-6e40c25e],.perm-header[data-v-6e40c25e]{display:flex;align-items:center;gap:12px}.perm-role-desc[data-v-6e40c25e]{font-size:12px;color:#8e8ea0}.perm-header-actions[data-v-6e40c25e]{display:flex;gap:6px;align-items:center}.btn-ghost[data-v-6e40c25e]{height:32px;padding:0 14px;border-radius:8px;border:2px solid #e0e8f0;background:#fff;font-size:12px;font-weight:500;color:#606266;transition:all .25s ease}.btn-ghost[data-v-6e40c25e]:hover{border-color:#00b890;color:#00b890;background:#f6fbf9}.btn-save[data-v-6e40c25e]{height:32px;padding:0 16px;border-radius:8px;border:none;background:linear-gradient(135deg,#00b890,#00c99a);color:#fff;font-size:12px;font-weight:600;box-shadow:0 2px 8px rgba(0,184,144,.25);transition:all .25s ease}.btn-save[data-v-6e40c25e]:hover{box-shadow:0 4px 14px rgba(0,184,144,.35);transform:translateY(-1px)}.perm-grid[data-v-6e40c25e]{flex:1;overflow-y:auto;padding:16px 20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;align-content:start}.perm-card[data-v-6e40c25e]{display:flex;align-items:center;gap:10px;padding:14px 16px;background:#f5f7fa;border-radius:12px;border:2px solid transparent;cursor:pointer;transition:all .25s ease;position:relative}.perm-card[data-v-6e40c25e]:hover{border-color:#d0e8e0;background:#fafdfc;box-shadow:0 2px 8px rgba(0,0,0,.04)}.perm-card:hover .perm-card-check[data-v-6e40c25e]{opacity:1}.perm-card.checked[data-v-6e40c25e]{background:#e8f5f1;border-color:#00b890}.perm-card.checked .perm-card-check[data-v-6e40c25e]{opacity:1;color:#00b890}.perm-card.checked .perm-name[data-v-6e40c25e]{color:#00b890;font-weight:600}.perm-card-check[data-v-6e40c25e]{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;color:#b0b8c1;opacity:0;transition:all .25s ease;box-shadow:0 1px 4px rgba(0,0,0,.08)}.perm-card-body[data-v-6e40c25e]{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.perm-icon[data-v-6e40c25e]{width:32px;height:32px;border-radius:8px;background:rgba(0,184,144,.08);display:flex;align-items:center;justify-content:center;flex-shrink:0}.perm-icon i[data-v-6e40c25e]{font-size:14px;color:#00b890}.perm-name[data-v-6e40c25e]{font-size:13px;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.perm-switch[data-v-6e40c25e]{flex-shrink:0}@media (max-width:900px){.main-layout[data-v-6e40c25e]{flex-direction:column}.role-panel[data-v-6e40c25e]{width:100%;min-width:100%;max-height:240px}.perm-grid[data-v-6e40c25e]{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}@media (max-width:600px){.permission-page[data-v-6e40c25e]{padding:12px}.stats-row[data-v-6e40c25e]{gap:8px}.stat-card[data-v-6e40c25e]{padding:12px;gap:10px}.stat-icon[data-v-6e40c25e]{width:36px;height:36px;border-radius:10px}.stat-icon i[data-v-6e40c25e],.stat-value[data-v-6e40c25e]{font-size:18px}.perm-header[data-v-6e40c25e]{flex-direction:column;align-items:flex-start}.perm-header-actions[data-v-6e40c25e]{width:100%}.perm-grid[data-v-6e40c25e]{grid-template-columns:1fr}}